VBNET使用MS Access技术指导Word文档下载推荐.docx
- 文档编号:13545396
- 上传时间:2022-10-11
- 格式:DOCX
- 页数:8
- 大小:19.86KB
VBNET使用MS Access技术指导Word文档下载推荐.docx
《VBNET使用MS Access技术指导Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《VBNET使用MS Access技术指导Word文档下载推荐.docx(8页珍藏版)》请在冰豆网上搜索。
VB.NET使用MSAccess创建存储过程
为了示范,我会先显示如何使用SQL语句来创建存储过程。
在文章末尾我会给列出需要在数据库执行的所有语句的代码。
当使用和Access包含的Northwind数据库时,它会创建4个存储过程。
它们都集中于Prodcut表,让我们从最容易的那个开始:
选择表格里所有行的数据。
为了创建这个存储过程,在数据库执行下列SQL语句:
1."
CREATE
PROC
procProductsList
AS
SELECT
*
FROM
Products;
"
语句“CREATEPROCprocCustomerList”是实际上创建存储过程的部份。
在”AS”下面的部分可以为任何有效的SQL语句。
经常性的,你会需要传递参数到存储过程去用于查询。
例如你可能想要根据某一个ProductID删除一个记录。
下列存储过程显示如何实现这个目的:
procProducts
DeleteItem(inProductsID
LONG)"
&
_
2."
DELETE
Products
WHERE
ProductsID
=
inProductsID;
在第一行,注意CREATEPROC声明右边的括号。
有一个定义为长整型的参数。
这是需要你输入的变量,用于删除记录。
下项两个分开的语句显示了如何为Product表创建一个add和一个update储存过程。
注意,为了文章的简短,过程中没有包括所有的字段:
procProductsAddItem
(inProductName
VARCHAR(40),
inSupplierID
LONG,
inCategoryID
LONG)
3."
INSERT
INTO
(ProductName,
SupplierID,
CategoryID)
4."
Values
(inProductName,
inSupplierID,
inCategoryID);
5."
procProductsUpdateItem
(inProductID
6."
inProductName
VARCHAR(40))
7."
UPDATE
SET
ProductName
8."
ProductID
inProductID;
注意:
当参数数量超过一个的时候,用逗号分开。
VB.NET使用MSAccess中的限制
在这里,你可能会碰到一些限制,尤其是如果当你已经非常习惯于SQLSERVER的强大功能的时候。
不能使用输出参数。
不要使用@字符。
@字符通常用于TransactionSQL(SQLSERVER),代表一个本地变量。
Access不总是会转换这个字符,有时会将它省略。
这个问题可能导致很难找的BUG,会使你多掉几把头发。
Access无法存取临时表。
我怀疑在很多TransactionSQL里有的选项在Access里是没有的,因为它不是TransactionSQL兼容的。
VB.NET使用MSAccess结论
希望这篇文章能提供在一个几乎是Access的未公开领域的一些指引,而对JET引擎则没有多做探讨。
如果需要知道ADO.NET代码在CreateStoredProc子程序里是如何工作的更多信息,请参见GurneetSingh写的GettingStartedwithADO.NET。
介绍
欢迎来到MSAccess存储过程的第二部分讨论。
第一部分详细地描述了如何使用ADO.NET和VisualBasic.NET在Access中创建存储过程.第二部分将会示范如何通过数据库访问层访问在第一部分已经创建的存储过程,你可以模仿它并且用在自己的应用程序里。
这篇文章会详细地描述如何使用VisualBasic.NET实现数据库的访问层。
数据库层的主要目的是通过类模块提供一个访问数据库的网关。
这个类模块将充当数据库和应用程序之间的粘合剂。
利用数据库访问层来访问数据库有2个优点:
你可以有改变你的后台数据库技术(从Access改到SQLServer)而不影响应用系统的能力。
你还能够通过在应用程序和数据库访问层之间增加一个控制层,来保证传过去的数据是“纯净”的。
在.NET里,数据库访问层通常会包括一个遵循面向对象规范的类模块,而VisualBasic的较早的版本会使用一个标准模块来处理。
数据库访问层-代码
现在该是我们卷起袖子来看一些代码的时候了。
在添加一个空类以后的第一件事情,就是列出这里需要使用的.NET类库,如下所示:
Imports
System
System.Data
System.Data.OleDb
System
库对大多数程序来说是标准的,但是我把它作为一个习惯,在所有的代码中都包含这个类库。
而System.Data
库则是一个对于大多数数据库访问程序都需要的库。
System.Data.OleDb
将用在访问Access所需要的OLEDBProvider。
如果我们需要使用SQLServer,则我们最好使用定制的SQLProvider
System.Data.SqlClient.
下一行开始了类的定义:
Public
Class
DBTier
这里我们定义类名为DBTier,并且给他Public
修饰符,因此它将可以被其他代码模块访问。
在类定义以后,将声明所有要用到的属性。
Shared
connectionString
As
String
_
PROVIDER=Microsoft.Jet.OLEDB.4.0;
Data
Source=C:
\Program
Files\Microsoft
Office\Office10\Samples\Northwind.mdb"
这里只声明了一个String属性,connectionString.这个变量保存了NorthwindAccess数据库的连接字符串。
声明这个变量为Shared,说明它是一个“类变量(ClassVariable)”,一个classvariable是和类关联的,二不是和这个类产生的每个对象相关联。
(译者:
VB.Net的Shared修饰符相当于C++或C#的Static修饰符)
在连接字符串的定义之后,你可以看到这里有3个过程和1个函数。
函数返回了一个包含所有产品列表的dataset。
它调用了在第一部分已经创建的存储过程
procProductsList.
然后你可以看到3个过程。
他们对应于每个存储过程,用于增加、删除、修改产品;
它们都有类似的结构;
每个使用了一个command,并声明了连接对象和必须的参数。
作为一个例子,我们来分开讨论ProductsDeleteItem过程。
理解了这个过程,其他2个就很容易消化了.
一开始,这个过程使用了一个参数,
ProductID,表示需要删除的产品的ID。
Sub
ProductsDeleteItem(ByVal
Integer)
接着,声明了所有的变量.分别用于存储过程将要使用的connection,command和parameter.这个参数就是需要删除的那格产品ID.
Dim
con
OleDbConnection
cmd
OleDbCommand
New
OleDbCommand()
paramProductID
OleDbParameter()
Command和connection的初始化:
OleDbConnection(connectionString)
cmd.Connection
con
确认了paramProductID
参数的属性,然后这个参数被添加到Command对象.在这个例子中,要用到存储过程里的参数名字是inProductID,它是一个整型变量,并用函数的参数进行赋值。
With
paramProductID
.ParameterName
inProductID"
.OleDbType
OleDbType.Integer
.Size
4
.Value
ProductID
End
With
cmd.Parameters.Add(paramProductID)
最后一步是真正调用存储过程.
cmd.CommandText
EXECUTE
procProductsDeleteItem"
con.Open()
cmd.ExecuteNonQuery()
con.Close()
注意connection对象这里只在需要执行存储过程的时候保留,然后就马上关闭了。
这将减少可能有的资源占用。
虽然这个例子中使用的DBTier类已经清楚的介绍了如何使用Access存储过程,它的功能仍然需要更多的增强来达到产品级的水平。
因为没有错误处理。
他仍然需要更多的强化。
本文的源代码包括了DBTier.vb,这个文件同时包含了一些简单的Form来测试类的实现。
总而言之,我希望您至少通过这些文章获得了2个信息:
一个是在MicrosoftAccess中存储过程是存在的并且是不错的,虽然有不足。
第二个你需要同时理解需要把应用程序的数据库访问分解到独立的类、函数、过程里面,这将使软件的维护和升级变得更加容易。
完整的DBTier.vb:
’
Functions
and
subrouti
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- VBNET使用MS Access技术指导 VBNET 使用 MS Access 技术指导