SqlDataAdapter是 DataSet与SQL Server之间的桥接器,用于相互之间的数据操作。
使用方法
1. 通过查询语句 与 SqlConnection对象实现
string strConn="uid=账号;pwd=密码;database=数据库;server=服务器"; SqlConnection conn=new SqlConnection(strConn); string strSql = "select * from 表名"; SqlDataReader da = new SqlDataReader(strSql, conn); DataSet ds = new DataSet(); da.Fill(ds, "自定义一个表名");
2.通过 SqlCommand对象实现
string strConn="uid=账号;pwd=密码;database=数据库;server=服务器"; SqlConnection conn=new SqlConnection(strConn); string strSql = "select * from 表名"; SqlCommand cmd = new Sqlcommand(strSql,conn); SqlDataReader da = new SqlDataReader(cmd); DataSet ds = new DataSet(); da.Fill(ds, "自定义一个表名"); //自定义表名可以定义为与数据库中一致的名字
注意:
1. SqlDataAdapter的UpdateCommand执行机制:当调用SqlDataAdapter.Update()时,只对修改过的Row()执行SqlDataAdapter.UpdateCommand。
2. 打开与关闭连接的处理
在调用SqlCommand对象执行sql命令之前,需要保证与该对象关联的SqlConnection对象是打开的,但是SqlDataAdapter对象特殊处在于:SqlDataAdapter会保证SqlConnection状态恢复到调用Fill方法之前的状态。
string strConn="uid=账号;pwd=密码;database=数据库;server=服务器";//SQL Server链接字符串 SqlConnection conn=new SqlConnection(strConn); SqlDataAdapter daCustomers,daOrders; strSql="SELECT * FROM Customers"; daCustomers = new SqlDataAdapter(strSql, conn); strSql="SELECT * FROM Orders"; daOrders=new SqlDataAdapter(strSql, conn);
DataSet ds=new DataSet();
//conn.open(); daCustomers.Fill(ds,"Customers"); daOrders.Fill(ds,"Orders");
//conn.close();
以上程序会在调用Fill方法时,打开/关闭连接各一次。 为了避免这种浪费,可以在其始末处各加上打开/关闭连接语句,如注释内容。