VBNET使用MS Access技术指导Word文档下载推荐.docx

上传人:b****4 文档编号:13545396 上传时间:2022-10-11 格式:DOCX 页数:8 大小:19.86KB
下载 相关 举报
VBNET使用MS Access技术指导Word文档下载推荐.docx_第1页
第1页 / 共8页
VBNET使用MS Access技术指导Word文档下载推荐.docx_第2页
第2页 / 共8页
VBNET使用MS Access技术指导Word文档下载推荐.docx_第3页
第3页 / 共8页
VBNET使用MS Access技术指导Word文档下载推荐.docx_第4页
第4页 / 共8页
VBNET使用MS Access技术指导Word文档下载推荐.docx_第5页
第5页 / 共8页
点击查看更多>>
下载资源
资源描述

VBNET使用MS Access技术指导Word文档下载推荐.docx

《VBNET使用MS Access技术指导Word文档下载推荐.docx》由会员分享,可在线阅读,更多相关《VBNET使用MS Access技术指导Word文档下载推荐.docx(8页珍藏版)》请在冰豆网上搜索。

VBNET使用MS Access技术指导Word文档下载推荐.docx

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

展开阅读全文
相关资源
猜你喜欢
相关搜索

当前位置:首页 > 经管营销 > 经济市场

copyright@ 2008-2022 冰豆网网站版权所有

经营许可证编号:鄂ICP备2022015515号-1