SqlDataAdapter简单介绍

来源:互联网 发布:云计算大会 编辑:程序博客网 时间:2024/06/11 15:01

一SqlDataAdapte特点介绍
1、表示用于填充 DataSet 和更新 SQL Server 数据库的一组数据命令和一个数据库连接。
2、在SqlDataAdapter和DataSet之间没有直接连接。当完成SqlDataAdpater.Fill(DataSet)调用后,两个对象之间就没有连接了。

SqlDataAdapter有三种构造函数

public SqlDataAdapter(SqlCommand);
public SqlDataAdapter(string
, SqlConnection);
public SqlDataAdapter(string, string);

建立多个SqlDataAdapter类实例

string strConn, strSqlEmployees, strSqlCustomers;
strConn
= "server=.;uid=sa;pwd=chengbo;database=northwind;"
;
strSqlEmployees
= "SELECT FirstName, LastName FROM Employees"
;
strSqlCustomers
= "SELECT CustomerID, CompanyName FROM Customers"
;
SqlConnection Conn
= new
SqlConnection(strConn);
SqlDataAdapter daEmployees
= new
SqlDataAdapter(strSqlEmployees, Conn);
SqlDataAdapter daCustomers
= new SqlDataAdapter(strSqlCustomers, Conn);

二SqlDataAdapter.fill

从查询中获取结果

①使用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.update

⑤多次调用Fill方法

      刷新DataSet中的数据,最简单的解决方法就是清空DataSet(或DataTable),然后再次调用DataAdapter对象的Fill方法。    

三SqlDataAdapte.update

用SqlDataAdapter更新数据库的方法介绍

private void update()

    {

      string link = ConfigurationSettings.AppSettings["link_local"].ToString();

      SqlConnection conn = new SqlConnection(link);

      SqlDataAdapter da = new SqlDataAdapter("SELECT order_id, contract FROM linhai", conn);

      DataSet ds = new DataSet();

      da.Fill(ds, "linhai");  

      da.UpdateCommand = new SqlCommand("UPDATE linhai SET contract = @contract " + "WHERE order_id = @order_id" , conn);

      da.UpdateCommand.Parameters.Add("@contract", SqlDbType.NVarChar, 15, "contract");

      da.UpdateCommand.Parameters.Add("@order_id", SqlDbType.NVarChar, 15, "order_id");

      

      ds.Tables["linhai"].Rows[0]["contract"] = "PPP";

      da.Update(ds.Tables[0]);

    }