您的位置:首页 > 其它

ADO.NET数据适配器对象DataAdapter

2012-07-16 09:17 225 查看
数据集的作用是临时存放数据,其并不直接和数据库打交道,它和数据库之间的相互作用是通过.NET数据提供程序中的数据适配器(DataAdapter)对象来完成的。数据库中的数据需要通过数据适配器的运输才存放到数据集中,而在数据集中的任何修改也要通过数据适配器提交到数据库中,数据适配器就象仓库和车间临时仓库之间运输材料的运货车,而数据连接则是运货车行走的路线。DataAdapter在数据集和数据库之间起桥梁的作用。

DataAdapter用于管理与数据库的连接、执行命令并填充数据集和更新数据库。

数据适配器属于.NET数据提供程序,不同类型的数据库使用不同的数据适配器,相应的命名空间中的适配器见表

一、DataAdapter对象的常用属性

DataAdapter对象的工作步骤一般有两种,一种是通过Command对象执行SQL语句,将获得的结果集填充到DataSet对象中;另一种是将DataSet里更新数据的结果返回到数据库中。

DataAdapter对象的常用属性形式为XXXCommand,用于描述和设置操作数据库。使用DataAdapter对象,可以读取、添加、更新和删除数据源中的记录。对于每种操作的执行方式,适配器支持以下4个属性,类型都是Command,分别用来管理数据操作的“增”、“删”、“改”、“查”动作。

SelectCommand属性:该属性用来从数据库中检索数据。

InsertCommand属性:该属性用来向数据库中插入数据。

DeleteCommand属性:该属性用来删除数据库里的数据。

UpdateCommand属性:该属性用来更新数据库里的数据。

例如,以下代码能给DataAdapter对象的selectCommand属性赋值。

//连接字符串

SqlConnection conn;

//创建连接对象conn的语句

// 创建DataAdapter对象

SqlDataAdapter da = new SqlDataAdapter;

//给DataAdapter对象的SelectCommand属性赋值

Da.SelectCommand = new SqlCommand("select * from user", conn);

同样,可以使用上述方式给其他的InsertCommand、DeleteCommand和UpdateCommand 属性赋值。

当在代码里使用DataAdapter对象的SelectCommand属性获得数据表的连接数据时,如果表中数据有主键,就可以使用CommandBuilder对象来自动为这个DataAdapter对象隐形地生成其他3个InsertCommand、DeleteCommand和UpdateCommand 属性。这样,在修改数据后,就可以直接调用Update方法将修改后的数据更新到数据库中,而不必再使用InsertCommand、DeleteCommand和UpdateCommand这3个属性来执行更新操作。

二、DataAdapter对象的常用方法

DataAdapter 对象主要用来把数据源的数据填充到DataSet中,以及把DataSet里的数据更新到数据库,同样有SqlDataAdapter和OleDbAdapter两种对象。它的常用方法有构造函数、填充或刷新DataSet的方法、将DataSet中的数据更新到数据库里的方法和释放资源的方法。

1、构造函数:

不同类型的Provider使用不同的构造函数来完成DataAdapter对象的构造。对于SqlDataAdapter类,其构造函数说明如表所示。

表SqlDataAdapter类构造函数说明

函 数 定 义

参 数 说 明

函 数 说 明

SqlDataAdapter()

不带参数

创建SqlDataAdapter对象

SqlDataAdapter(

SqlCommand selectCommand)

selectCommand:指定新创建对象的SelectCommand属性

创建SqlDataAdapter对象。用参数selectCommand设置其Select Com- mand属性

SqlDataAdapter(string

selectCommandText,SqlConnection selectConnection)

selectCommandText:指定新创建对象的SelectCommand属性值

selectConnection:指定连接对象

创建SqlDataAdapter对象。用参数selectCommandText设置其Select Command属性值,并设置其连接对象是selectConnection

SqlDataAdapter(string

selectCommandText,String selectConnectionString)

selectCommandText:指定新创建对象的SelectCommand属性值

selectConnectionString:指定新创建对象的连接字符串

创建SqlDataAdapter对象。将参数selectCommandText设置为Select Command属性值,其连接字符串是selectConnectionString

OleDbDataAdapter的构造函数类似SqlDataAdapter的构造函数,如表所述。

表 OleDbDataAdapter类构造函数说明

函 数 定 义

参 数 说 明

函 数 说 明

OleDbDataAdapter()

不带参数

创建OleDbDataAdapter对象

OleDbDataAdapter(

OleDbCommand selectCommand)

selectCommand:指定新创建对象的SelectCommand属性

创建OleDbDataAdapter对象。用参数selectCommand设置其SelectCommand属性

OleDbDataAdapter(string

selectCommandText, OleDbConnection selectConnection)

selectCommandText:指定新创建对象的SelectCommand属性值

selectConnection:指定连接对象

创建SqlDataAdapter对象。用参数selectCommandText设置其SelectCommand属性值,并设置其连接对象是selectConnection

OleDbDataAdapter(string

selectCommandText,String selectConnectionString)

selectCommandText:指定新创建对象的SelectCommand属性值

selectConnectionString:指定新创建对象的连接字符串

创建OleDbDataAdapter对象。将参数selectCommandText设置为SelectCommand 属性值,其连接字符串是selectConnectionString

二、Fill方法

当调用
Fill
方法时,它将向数据存储区传输一条 SQL SELECT 语句。该方法主要用来填充或刷新DataSet,返回值是影响DataSet的行数。该方法的常用定义如表所示。

表DataAdapter类的Fill方法说明

函 数 定 义

参 数 说 明

函 数 说 明

int Fill (DataSet dataset)

dataset:需要更新的DataSet

根据匹配的数据源,添加或更新参数所指定的DataSet,返回值是影响的行数

int Fill (DataSet
dataset,string srcTable)

dataset:需要更新的DataSet

srcTable:填充DataSet的dataTable名

根据dataTable名填充DataSet

3、Update方法

当调用DataAdapter的Update方法时,实质上DataAdapter对象就是将用户的需求转换为标准的Update,Delete或Insert语句来完成对数据库数据的操作。DataAdapter对象实际上是通过3个属性封装相应的语句来完成这样的功能的。
InsertCommand属性:封装Insert语句;
UpdateCommand属性:封装Update语句;
DeleteCommand属性:封装Delete语句。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: