应用ADO.NET访问数据库

时间:2022-06-25 07:55:33

应用ADO.NET访问数据库

摘要:该文介绍了数据库开发的一般过程,针对面向对象程序设计的数据库访问技术。数据库访问的各个对象及对象的属性、方法、及使用。

关键词:;数据库;属性;方法

中图分类号:TP311.13 文献标识码:A 文章编号:1009-3044(2013)05-0963-02

使用开发数据库访问程序一般过程是:创建connection对象,连接数据库。

创建Command对象执行SQL命令;创建DataAdapter对象,支持数据源和数据集之间的数据交换;创建Dataset对象,将数据源中所取得的数据保存在内存之中,并对数据进行各种操作等过程。

假定现已使用Microsoft Access 2000建立了Student.mdb数据库,数据库中建有一个如前表所示的数据表,数据表取名为studentbook,表中的字段名分别为Num(学号)、Name(姓名)、Age(年龄)、Sex(性别)和specialities(专业),现以该数据表为例,介绍 如何应用编写访问数据库应用程序。

表1 学生信息表

[学号\&姓名\&年龄\&性别\&专业\&99001\&王玲\&20\&女\&计算机\&99002\&张良\&21\&男\&机械\&99003\&李丽\&21\&女\&管理\&…\&…\&…\&…\&…\&]

1 创建和使用connection对象

如果要访问数据源中的数据,必须先与数据库建立连接,在中,可以使用两个类来创建connection对象:

SQLConnection类:管理与SQL Server 7.0版或更高版本的连接,该类类位于 system.Data.sqlclient命名空间。

OLEDBConnection:管理与可通过 OLE DB 访问的数据源的连接。该类位于System.Data.OLeDb命名空间。

现以连接OLE DB数据源为例,并假设已引入相关的命名空间。创建OLEDBConnection对象语法格式:Dim 对象名 As New OLEDBConnection(连接字符串)

1.1 OLEDBConnection类所提供的属性

1) Connectionstring属性: Connectionstring属性用于设置连接到数据库的连接字符串。连接字符串采用由分号分隔的一系列“关键词=值”的形式。其中各“关键词”和“值”为本类的其他属性名和相应的属性值。

2) ConnectionTimeout属性:设置连接超时的时间。该属性的默认值为15秒。

3) DataBase属性:连接的数据库名。

4) Datasource属性:数据库所在位置及名称。

5) Provider属性:设置想连接的数据库种类。其中,MSDAORA为Oracle数据库;SQLOleDb为SQLServer数据库;Microsoft.Jet.oLEDB.4.0为Access数据库。

1.2 OleDbconnection类提供的主要方法

1) open方法:用于打开数据库。

2) close方法:close方法用于关闭数据库。

2 创建和使用Command对象

当使用连接对象的open方法与数据库建立连接后,需要执行相应的SQL命令对数据库进行操作,这样就需要创建Command对象。下面以创建OleDbcommand对象为例,来介绍创建command对象的语法格式:

Dim 对象名 As New OleDbcommand(SQL字符串, connection对象)

该类提供的相关属性如下:

1) commandText属性:用于设置或获取要执行的SQL语句。

2) commandType属性:用于设置或获取命令的种类,有Text、TableDirect及storeprocedure三种分别代表SQL命令,数据表及存储程序名。

3) connection属性:用于设置或获取connection对象。

3 创建和使用DataAdapter对象

当连接数据库,并执行了SQL命令之后,接着便是将数据库中的数据读入到Dataset对象中,DataAdapter对象就是负责在数据源与Dataset对象之间交换数据,它不仅能交数据源中的数据读入Dataset对象,还可将Dataset对象中更新的数据写回到数据库中去。

下面以创建OleDbDataAdapter对象为例来说明。创建OleDbDataAdapter对象的语法格式如下:

Dim 对象名 As New OleDbDataAdapter(command对象)

只要在创建DataAdapter对象时,输入一个command对象即可。该类提供的相关属性如下:

Insertcommand属性: 用于设置或取得对数据源添加数据的SQL命令。

Deletecommand属性: 用于设置或取得对数据库删除数据的SQL命令。

Selectcommand属性: 用于设置或取得对数据源查询数据的SQL命令。

Updatecommand属性: 用于设置或获取对数据源更新数据的SQL命令。

若将SQL语句执行后的结果读入到Dataset对象中,需使用DataAdapter的Fill方法。

Fill的语法格式如下: Fill(Dataset 对象,“数据表名”)

该方法用于将数据源取得的数据,放入数据集对象的数据表中,其中第一个参数是数据集对象,第二个参数是数据表的名称。下面以一个例子来说明。

Dim Myconn As New system..Data.OleDb.OleDbconnection()

Dim strcnn As string

Strcnn=“provider=Microsoft..Jet.oLeDb.4.0;Datasource=D:\student.mdb”

Myconn.connectionstring=strcnn

Myconn.open()

Dim Mycmd As New system.data.oledb.oledbcommand()

mandText=”select*from studentbook”

Mycmd.connection=Myconn

Dim MyAda As New system.Data.oleDbDataAdapter(Mycmd)

Dim MyDa AS New Dataset()

MyAda.Fill(MyDa,"studentbook")

此例中,第10行语句是创建一个Dataset对象,第11行的Fill语句是将查询数据源的结果放入Dataset对象的studentbook数据表中.

4 创建和使用Dataset对象

Dataset是的核心,用于支持中的离线数据访问。Dataset的结构与关系数据库的结构很相似,可以把Dataset想成内存中的数据库,Dataset对象表示了数据库中完整的数据,包括表和表之间的关系等。当使用DataAdapter的Fill方法,将所连接数据库中的数据放入Dataset对象之后,与数据库的连接即断开。此时,在应用程序中将直接从Dataset对象中读取数据,不再依赖于数据库了。这样,在多用户共同存取的网络系统中,可有效地降低数据库服务器的负担,提高数据存取的效率。

在中可使用Dataset类来创建Dataset对象,其语法格式如下:

Dim 对象名 As Dataset()

在Dataset对象中有许多属性,其中最重要的是Tables属性和Relations属性。Tables属性值是一个DataTable对象集,每个DataTable对象代表了数据库中的一个表。

每个Datatable数据表都由相应的行和列所组成。所以,一个Datatable对象都有两个重要的属性:columns属性;Rows属性。

Columns属性值是一个数据表的Datacolumn对象集,每一个Datacolumn对象代表数据表中的每个列

Rows属性值是一个数据表的DataRow对象集,每个DataRow对象代表了数据表达式的一行数据。

此外,Dataset对象还有一个Relations属性,该属性值是DataRelation对象集,每个DataRelation对象表达了数据表之间的关系。

当创建了Dataset对象,并将数据库中的数据放入Dataset对象之后,就可以在离线的状态下使用Dataset对象、DataTable对象、Datacolumn对象和DataRow对象所提供的方法,对Dataset对象中的数据进行添加、修改、删除等各种操作。如,要删除一个数据表中某行记录,可以应用DataRow对象的ReMove方法,将该记录从数据表中完全删除。

参考文献:

[1] 柴晟.ADO. NET数据库访问技术案例式教程[M].北京航天航空大学出版社,2012.

[2] (美)斯赛帕. 2.0技术内幕[M].贾洪峰 译. 清华大学出版社,2007.

[3] 陈承欢数据库访问技术案例教程[M].人民邮电出版社网站,2008.

上一篇:独立学院C语言程序设计的教学探讨 下一篇:互联网下网络综合布线的研究