文章教程

11.3与数据库交互

8/31/2020 9:37:14 PM 人评论 次浏览

11.3 与数据库交互

与数据库建立连接后,就可以对数据库进行操作了。通常,使用ADO.NET对象与数据库交互较方便,主要使用Connection对象、Command对象、DataAdapter对象、DataReader和DataSet对象等与数据库进行操作,本节学习如何使用这些对象与数据库进行交互。

11.3.1 使用Connection打开与关闭数据库

在ADO.NET中,Connection对象主要用途是打开和关闭与数据库的连接,通过此对象,可以对一个数据库进行访问和操作。表11-3列出了Connection对象的一些属性。

表11-3 Connection对象的属性

alt

上述最常用的属性是ConnectionString。表11-4列出了Connection对象的一些常用方法。

表11-4 Connection对象的常用方法

alt

最常用的方法是Open和Close。

代码如下。

alt

其中,Integrated security=True表示集成验证身份的方式,也就是使用Windows验证的方式去连接到数据库服务器,其优点是不需要在连接字符串中编写用户名和密码,在一定程度上提高了安全性。

11.3.2 使用Command操作数据库

Command对象主要用来对数据库进行增删改查等操作。根据.NET Framework数据提供程序的不同,Command对象也可分为SqlCommand、OleDbCommand、OdbcCommand、OracelCommand,表11-5列出了Command对象的常用属性。

表11-5 Command对象的常用属性

alt

Command对象的常用方法如表11-6所示。

表11-6 Command对象的常用方法

alt

因为在实际开发中,使用最多就是SqlCommand对象,在使用SqlCommand对象操作数据库之前,首先要创建SqlCommand对象。ASP.NET提供了三种创建SqlCommand对象的方法。

(1)直接创建一个新实例,然后设置适当属性。

alt

(2)利用构造函数指定查询字符串和SqlConnection连接。

alt

(3)调用Sqlconnection类的CreateCommand方法。

alt

使用SqlCommand对象来操作数据库,通常有以下步骤。

(1)声明SqlConnection对象。

(2)声明SqlCommand对象。

(3)指定Command对象需要操作的SQL语句。

(4)关联Connection实例对象。

(5)打开Connection对象。

(6)执行Command对象中的方法进行数据库操作。

(7)关闭Connection对象。

示例11-1:在AdminUser表插入一条新的记录。

首先在命名空间类引用:using System.Data.SqlClient;

然后在相应的事件中,加入以下代码。

alt

运行页面,当单击页面的“添加”按钮时,结果如下。

alt

图11-2 SqlCommand运行结果

11.3.3 使用DataReader对象检索数据

DataReader对象可用于从数据库里检索数据。通过Command.ExecuteReader创建DataReader对象,以便从数据源检索行。根据.NET Framework数据提供程序的不同,DataReader对象可分为OleDbDataReader、SqlDataReader、OdbcDataReader和OracleDataReader,在实际的开发应用中,会根据数据源的不同,选择相应的DataReader对象,表11-7列出了DataReader的常用属性。

表11-7 DataReader的常用属性

alt

常用方法如表11-8所示。

表11-8 DataReader的方法

alt

注意

每次使用完DataReader对象后都应调用Close方法。


如果Command包含输出参数或返回值,那么,在DataReader关闭之前,将无法访问这些输出参数或返回值。

示例11-2:使用DataReader对象查询数据。

首先在命名空间类引用:using System.Data.SqlClient。

然后在相应的事件中,加入以下代码。

alt

当单击“查询”按钮时,运行结果如图11-3所示。

alt

图11-3 DataReader运行结果

11.3.4 使用DataAdapter和DataSet对象

通常,DataAdapter对象用于从数据源进行数据检索,并且把结果填充到DataSet的表中。DataAdapter主要对DataSet所做的更改解析回数据源。DataAdapter对象是连接DataSet和数据源的桥梁,DataAdapter对象使用Command对象执行SQL命令。在.NET Framework中,主要有以下四种DataAdapter对象:OleDbDataAdapter、SqlDataAdapter、OdbcDataAdapter和OracleDataAdapter。

DataAdapter具有四个用于从数据源检索数据和更新数据源中数据的属性:SelectCommand属性用于从数据源中检索数据;InsertCommand、UpdateCommand和DeleteCommand属性用于管理数据源中的更改。表11-9列出了DataAdapter对象的常用方法。

表11-9 DataAdapter对象的方法

alt

DataSet是数据的内存驻留表示形式,它提供了独立于数据源的一致关系编程模型。DataSet表示整个数据集,其中,包含表、约束和表之间的关系。由于DataSet独立于数据源,因此,DataSet可以包含应用程序本地的数据,也可以包含来自多个数据源的数据,下面通过示例演示DataAdapter对象和DataSet结合对数据库进行更新的操作。

示例11-3:利用DataAdapter和DataSet对象向表中插入新记录。

首先在命名空间类引用:using System.Data.SqlClient。

然后在相应的事件中,加入以下代码。

alt

上述代码首先使用DataAdapter对象取出表中的所有数据,然后调用DataAdapter对象的Fill方法填充到DataSet中,并取新表名为“UserInfo”,再通过DataRow对象向DataSet添加一条记录,最后使用DataSet的Update方法将记录更新到数据库中。

运行结果如图11-4所示。

alt

图11-4 DataSet运行结果

教程类别