一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]);
}