论文部分内容阅读
摘要:本文介绍了ADO、ADO.NET、ADO.NET 中相关类以及VB.NET中利用ADO.NET连接数据库的方法和步骤,并附加了数据库连接后的数据浏览、查询、删除、插入等操作的代码。
关键词:ADO.NET;数据适配器;数据集
中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)05-11211-02
1 引言
Visual Basic.net作为应用程序的开发“利器”也表现在数据库应用程序的开发上,它良好的界面和强大的控件功能使数据库编程变得简单多了。但即便如此,数据库应用程序的开发仍然算得上是VB.net编程中的难点,这是因为你不仅要熟悉VB.net中关于数据库编程方面的知识(当然这是十分简单的)还要了解数据库的知识。本文主要介绍数据库连接方面的知识。
2 相关概念
数据库是长期存储在计算机内、有组织的、可共享的数据集合。数据库是按照某种数据模型组织的、存储在外存储器上,且可被多个用户同时使用。因此,它具有较小的冗余度,较高的独立性和易扩展性。数据库不是独立存在的,它是组成数据库系统的一部分,在实际应用中,人们面对的是数据库系统。ActiveX Data Objects (ADO) 是微软最新的数据访问技术。它被设计用来同新的数据访问层OLE DB Provider一起协同工作,以提供通用数据访问(Universal Data Access)。OLE DB是一个低层的数据访问接口,用它可以访问各种数据源,包括传统的关系型数据库,以及电子邮件系统及自定义的商业对象。 ADO向我们提供了一个熟悉的,高层的对OLE DB的Automation封装接口。对那些熟悉RDO的程序员来说,你可以把OLE DB比作是ODBC驱动程序。如同RDO对象是ODBC驱动程序接口一样,ADO对象是OLE DB的接口;如同不同的数据库系统需要它们自己的ODBC驱动程序一样,不同的数据源要求它们自己的OLE DB提供者(OLE DB provider)。目前,虽然OLE DB提供者比较少,但微软正积极推广该技术,并打算用OLE DB取代ODBC。
ADO.NET是.NET框架中的数据访问模型,主要涉及到System.Data、System.Data.SqlClient和System.Data.OleDb三个命名空间中的类。应用程序使用“数据连接”对象建立到数据库的连接,这样才能够对数据库进行操作,“数据适配器”对象负责通过“数据连接”对象存取数据库中的内容,而取出的数据将临时存储在内存中的“数据集”对象中。应用程序可以通过数据集使用数据。另外,ADO.NET中还有一个Command对象,它可以对数据库执行SQL语句,而返回的结果可以通过DataReader 对象以只读、单向的方式获取。
3 连接数据库的步骤
VB.NET在访问数据库之前,首先必须建立该数据源的连接。在ADO.NET中,可以使用以下两个连接对象之一创建和管理连接。SqlConnection对象和OleDbConnection对象。其中SqlConnection用来连接SQLServer7.0版或更高版本,使用System.Data.SqlClient命名空间。OleDbConnection用来连接其他数据库。使用System.Data.OleDb命名空间。他们在后续的操作中使用的对象和方法也不完全一样。一般来说,连接数据库操作可以在form窗体初始化时进行,也就是在Form的InitializeComponent()过程中。
以下主要讲述通过OleDbConnection连接的数据库操作。OleDbConnection主要用来连接除SQL Server以外的其他类型的数据库,当然它也能连接SQL Server,只不过此时效率没有使用SqlConnection对象那么高。
第一步:建立数据库,此处不做介绍,假设已经用Access建立了数据库xs.mdb。并保存在当前项目的bin文件夹下。Xs.mdb中有表student.dbf,其结构如下:
第二步:建立连接,在窗体的Initialize Component()过程中写下如下代码:
第三步:创建数据适配器访问数据库
访问数据库可以使用Command对象,也可以使用DataAdapter(数据适配器)对象,以下主要介绍OleDbAdapter对象,通过它来访问用OleDbConnection建立连接的数据库。
数据适配器可以通过连接来访问数据库,并按照指定的SQL语句命令对数据库进行查询、添加、删除和修改等操作。适配器支持以下四个属性:
SelectCommand 引用某命令从数据存储区检索行。
InsertCommand 引用某命令以便向数据存储区插入行。
DeleteCommand 引用某命令以便从数据存储区删除行。
UpdateCommand 引用某命令以便修改数据存储区中的行。
在以后对数据库数据的查询、添加、删除和修改时,会用到上面四个属性。
通过数据适配器可以通过Fill方法填充数据集。数据集是ADO.NET的新特性,它类似于一个小型数据库,里面存储着数据,不过总是离线的,不占用连接,人们常把数据集对象比做一个存在内存中的,离线的数据库。数据集有同数据库相似的结构,例如都是由数据表、数据关系和约束等组成的。这使得开发者可以一次性的把数据从数据库读入内存中的数据集中进行离线的处理,对于分布式的应用程序,即应用程序和后端数据库不在同一台机器上,这样做能够极大的节省网络带宽,优化程序的性能。
下面创建了数据适配器,并把xs数据库的student表中记录都检索出来。同时定义一个数据集ds1,并用数据适配器填充这个数据集,此时该数据集中应该包含student表中的所有记录。
第四步:数据绑定
在生成了数据集后,可以通过属性窗口把文本框和数据集中某个表的一个字段绑定,这样不需要编写代码来设置每一个文本框显示的内容了。选中一个文本框,比如name属性为txtname的文本框,希望它显示student表中的name字段,那么可以设置DataBinding属性下的Text为下拉框中的ds1下student的Name字段。同样设置其他文本框与字段的绑定。
在窗体的layout事件中写如下代码填充数据集ds1,那么该数据集中就有记录了,而与之绑定的文本框也可以显示内容了。
Ds1.clear()
OleDbdataAdapter1.fill(ds1)
此时运行该窗体,可以看到每一个文本框都显示了student表中的第一个记录。
第五步:接下来可以写上数据浏览(包括第一个、上一个、下一个、最后一个四个按钮其name属性分别为Firstbut、forebut、nextbut、lastbut)、添加(name属性为addbut)、删除(name属性为delebut)、查询(name属性为querybut)和修改(name属性为updatebut)的代码。
“第一个”按钮的代码:
“上一个”按钮的代码:
“下一个”按钮的代码:
“最后一个”按钮的代码:
按学号查询的代码:
End Sub
插入记录的代码:
删除当前记录的代码:
修改记录的代码:
参考文献:
[1]苏国彬. Visual Basic.NET程序设计教程[M]. 机械工业出版社,2002.9.
[2]德特(Deitel,H.M.)(美). Visual Basic.NET程序设计专家指南[M]. 机械工业出版社,20002.10.
本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。
关键词:ADO.NET;数据适配器;数据集
中图分类号:TP311文献标识码:A文章编号:1009-3044(2007)05-11211-02
1 引言
Visual Basic.net作为应用程序的开发“利器”也表现在数据库应用程序的开发上,它良好的界面和强大的控件功能使数据库编程变得简单多了。但即便如此,数据库应用程序的开发仍然算得上是VB.net编程中的难点,这是因为你不仅要熟悉VB.net中关于数据库编程方面的知识(当然这是十分简单的)还要了解数据库的知识。本文主要介绍数据库连接方面的知识。
2 相关概念
数据库是长期存储在计算机内、有组织的、可共享的数据集合。数据库是按照某种数据模型组织的、存储在外存储器上,且可被多个用户同时使用。因此,它具有较小的冗余度,较高的独立性和易扩展性。数据库不是独立存在的,它是组成数据库系统的一部分,在实际应用中,人们面对的是数据库系统。ActiveX Data Objects (ADO) 是微软最新的数据访问技术。它被设计用来同新的数据访问层OLE DB Provider一起协同工作,以提供通用数据访问(Universal Data Access)。OLE DB是一个低层的数据访问接口,用它可以访问各种数据源,包括传统的关系型数据库,以及电子邮件系统及自定义的商业对象。 ADO向我们提供了一个熟悉的,高层的对OLE DB的Automation封装接口。对那些熟悉RDO的程序员来说,你可以把OLE DB比作是ODBC驱动程序。如同RDO对象是ODBC驱动程序接口一样,ADO对象是OLE DB的接口;如同不同的数据库系统需要它们自己的ODBC驱动程序一样,不同的数据源要求它们自己的OLE DB提供者(OLE DB provider)。目前,虽然OLE DB提供者比较少,但微软正积极推广该技术,并打算用OLE DB取代ODBC。
ADO.NET是.NET框架中的数据访问模型,主要涉及到System.Data、System.Data.SqlClient和System.Data.OleDb三个命名空间中的类。应用程序使用“数据连接”对象建立到数据库的连接,这样才能够对数据库进行操作,“数据适配器”对象负责通过“数据连接”对象存取数据库中的内容,而取出的数据将临时存储在内存中的“数据集”对象中。应用程序可以通过数据集使用数据。另外,ADO.NET中还有一个Command对象,它可以对数据库执行SQL语句,而返回的结果可以通过DataReader 对象以只读、单向的方式获取。
3 连接数据库的步骤
VB.NET在访问数据库之前,首先必须建立该数据源的连接。在ADO.NET中,可以使用以下两个连接对象之一创建和管理连接。SqlConnection对象和OleDbConnection对象。其中SqlConnection用来连接SQLServer7.0版或更高版本,使用System.Data.SqlClient命名空间。OleDbConnection用来连接其他数据库。使用System.Data.OleDb命名空间。他们在后续的操作中使用的对象和方法也不完全一样。一般来说,连接数据库操作可以在form窗体初始化时进行,也就是在Form的InitializeComponent()过程中。
以下主要讲述通过OleDbConnection连接的数据库操作。OleDbConnection主要用来连接除SQL Server以外的其他类型的数据库,当然它也能连接SQL Server,只不过此时效率没有使用SqlConnection对象那么高。
第一步:建立数据库,此处不做介绍,假设已经用Access建立了数据库xs.mdb。并保存在当前项目的bin文件夹下。Xs.mdb中有表student.dbf,其结构如下:
第二步:建立连接,在窗体的Initialize Component()过程中写下如下代码:
第三步:创建数据适配器访问数据库
访问数据库可以使用Command对象,也可以使用DataAdapter(数据适配器)对象,以下主要介绍OleDbAdapter对象,通过它来访问用OleDbConnection建立连接的数据库。
数据适配器可以通过连接来访问数据库,并按照指定的SQL语句命令对数据库进行查询、添加、删除和修改等操作。适配器支持以下四个属性:
SelectCommand 引用某命令从数据存储区检索行。
InsertCommand 引用某命令以便向数据存储区插入行。
DeleteCommand 引用某命令以便从数据存储区删除行。
UpdateCommand 引用某命令以便修改数据存储区中的行。
在以后对数据库数据的查询、添加、删除和修改时,会用到上面四个属性。
通过数据适配器可以通过Fill方法填充数据集。数据集是ADO.NET的新特性,它类似于一个小型数据库,里面存储着数据,不过总是离线的,不占用连接,人们常把数据集对象比做一个存在内存中的,离线的数据库。数据集有同数据库相似的结构,例如都是由数据表、数据关系和约束等组成的。这使得开发者可以一次性的把数据从数据库读入内存中的数据集中进行离线的处理,对于分布式的应用程序,即应用程序和后端数据库不在同一台机器上,这样做能够极大的节省网络带宽,优化程序的性能。
下面创建了数据适配器,并把xs数据库的student表中记录都检索出来。同时定义一个数据集ds1,并用数据适配器填充这个数据集,此时该数据集中应该包含student表中的所有记录。
第四步:数据绑定
在生成了数据集后,可以通过属性窗口把文本框和数据集中某个表的一个字段绑定,这样不需要编写代码来设置每一个文本框显示的内容了。选中一个文本框,比如name属性为txtname的文本框,希望它显示student表中的name字段,那么可以设置DataBinding属性下的Text为下拉框中的ds1下student的Name字段。同样设置其他文本框与字段的绑定。
在窗体的layout事件中写如下代码填充数据集ds1,那么该数据集中就有记录了,而与之绑定的文本框也可以显示内容了。
Ds1.clear()
OleDbdataAdapter1.fill(ds1)
此时运行该窗体,可以看到每一个文本框都显示了student表中的第一个记录。
第五步:接下来可以写上数据浏览(包括第一个、上一个、下一个、最后一个四个按钮其name属性分别为Firstbut、forebut、nextbut、lastbut)、添加(name属性为addbut)、删除(name属性为delebut)、查询(name属性为querybut)和修改(name属性为updatebut)的代码。
“第一个”按钮的代码:
“上一个”按钮的代码:
“下一个”按钮的代码:
“最后一个”按钮的代码:
按学号查询的代码:
End Sub
插入记录的代码:
删除当前记录的代码:
修改记录的代码:
参考文献:
[1]苏国彬. Visual Basic.NET程序设计教程[M]. 机械工业出版社,2002.9.
[2]德特(Deitel,H.M.)(美). Visual Basic.NET程序设计专家指南[M]. 机械工业出版社,20002.10.
本文中所涉及到的图表、注解、公式等内容请以PDF格式阅读原文。