一、特点介绍
> 1 、 表示用于填充 ** DataSet ** 和更新 ** SQL Server ** 数据库的一组数据命令和一个数据库连接。 > > 2、在 ** SqlDataAdapter ** 和 ** DataSet ** 之间没有直接连接。当完成 ** SqlDataAdpater.Fill(DataSet) ** 调用后,两个对象之间就没有连接了。
二、使用介绍
> 1、创建 ** Sql DataAdapter ** > > ... > > string strSQL= “ Select * from Customers ” ; > > ** SqlCommand ** cmd=new ** SqlCommand ** (strSQL,cn); > > ** SqlDataAdapter ** da=new ** SqlDataAdapter ** (); > > da.SelectCommand=cmd; > > 2、 ** Sql DataAdapter ** 构造函数 > >> ① ** string ** strConn= “ Provider= . .. . . ”; >> >> ** string ** strSQL= “ select * from Customers ”; >> >> ** SqlDataAdapter ** da=new ** SqlDataAdapter ** (strSQL,strConn); >> >> ② ** string ** strConn= “ Provider=..... ”; >> >> ** SqlConnection ** cn=new ** SqlConnection ** (strConn); >> >> ** SqlDataAdapter ** da=new ** SqlDataAdapter ** ( “ select * from Customers ” ,cn); >> >> ③ ** string ** strConn= “ Provider= . .. . . ”; >> >> ** string ** strSQL= “ select * from Customers ”; >> >> ** SqlConnection ** cn=new ** SqlConnection ** (strConn); >> >> ** SqlCommand ** cmd=new ** SqlCommand ** (strSQL,cn); >> >> ** SqlDataAdapter ** da=new ** SqlDataAdapter ** (cmd); > > 3、 从查询中获取结果 > >> ① 使用 ** Fill ** 方法 >> >> ... >> >> ** SqlDataAdapter ** da=new ** SqlDataAdapter ** (strSQL,strConn); >> >> ** DataSet ** ds=new ** DataSet ** (); >> >> da. ** Fill ** (ds); // 这里 ds 中的表名为 Table >> >> ②使用Fill 方法创建 ** DataTable ** 对象和 ** DataColumn ** 对象 >> >> ... >> >> ** SqlDataAdapter ** da=new ** SqlDataAdapter ** (strSQL,strConn); >> >> da.TableMapping.Add( “ Table ”,“ Customers ” ); >> >> ** DataSet ** ds=new ** DataSet ** (); >> >> da. ** Fill ** (ds); >> >> ③使用重载Fill 方法 >> >> ** SqlDataAdapter ** . ** Fill ** (DataSet, “ Customers ” ); >> >> ** SqlDataAdapter ** . ** Fill ** (DataTable); >> >> ** SqlDataAdapter ** . ** Fill ** (DataSet,intStartRecord,intNumRecords, “ TableName ” ); >> >> ④开放和关闭连接 >> >> 如果调用了一个 ** SqlDataAdapter ** 对象的 ** Fill ** 方法,而 ** SelectCommand ** 属性的 ** Connection ** 关闭了,那么 ** SqlDataAdapter ** 就会开放一个连接,然后提交查询、获取结果、最后关闭连接。如果在调用前开放了 ** Connection ** ,那么操作之后仍然保持开放。 >> >> ... >> >> ** SqlDataAdapter ** daCustomers,daOrders; >> >> daCustomers=new ** SqlDataAdapter ** ( “ Select * from Customers ” ,cn); >> >> daOrders=new ** SqlDataAdapter ** ( “ Select * from Orders ” ,cn); >> >> ** DataSet ** ds=new ** DataSet ** (); >> >> cn. ** Open ** (); >> >> daCustomers. ** Fill ** (ds); >> >> daOrders. ** Fill ** (ds); >> >> cn. ** Close ** (); >> >> ⑤ 多次调用 ** Fill ** 方法 >> >> 刷新 ** DataSet ** 中的数据,最简单的解决方法就是清空 ** DataSet ** ( 或 ** DataTable ** ) ,然后再次调用 ** DataAdapter ** 对象的 ** Fill ** 方法。
三、属性方法事件介绍
> 1 、属性 > > ① ** AcceptChangeDuringFill : ** 确定由 ** DataAdapter ** 所获取的行的 ** RowState ** (默认为 ** True ** )。 > > ② ** DeleteCommand ** : 获取或设置一个 ** Transact-SQL ** 语句或存储过程,以从数据集删除记录。 > > ③ ** InsertCommand ** : 获取或设置一个 ** Transact-SQL ** 语句或存储过程,以在数据源中插入新记录。 > > ④ ** SelectCommand ** : 获取或设置一个 ** Transact-SQL ** 语句或存储过程,用于在数据源中选择记录。 > > ⑤ ** UpdateCommand ** : 获取或设置一个 ** Transact-SQL ** 语句或存储过程,用于更新数据源中的记录。 > > ⑥ ** TableMappings ** : ** SqlDataAdapter ** 用来将查询的结果映射到 ** DataSet ** 的信息集合。 > > ⑦ ** ContinueUpdate ** :控制 ** Sql DataAdapter ** 在遇到一个错误之后是否继续提交更改 ( 默认为 ** false ** )。 > > 2、方法 > > ① ** Fill ** :执行存储于 ** SelectCommand ** 中的查询,并将结果存储在 ** DataTable ** 中。 > > ② ** FillSchema ** :为存储在 ** SelectCommand ** 中存储的查询获取架构信息。获取查询中的各列名称和数据类型。 > > ③ ** GetFillParameters ** :为 ** SelectCommand ** 获取一个包含着参数的数组。 > > ④ ** Update ** :向数据库提交存储在 ** DataSet ** ( 或 ** DataTable ** 、 ** DataRows ** ) 中的更改。该方法会返回一个整数值,其中包含着在数据存储中成功更新的行数。 > > 3、事件 > > ① ** FillError ** :当 ** DataAdapter ** 遇到填充 ** DataSet ** 或 ** DataTable ** 的一个错误时,该事件被触发。 > > ② ** RowUpdated ** :向数据库提交一个修改的行之后被触发。 > > ③ ** RowUpdating ** :向数据库提交一个修改的行之前被触发。