用SqlDataAdapter操縱數據集時最常用到的就是Fill()與Update()方法。
Fill()填充DataSet或DataTable,而Update()就是將DataSet或DataTable中的改變更新到數據庫中。若沒有用Update()方法,DataSet或DataTable中數據的改變並不會影響數據庫中的數據。
示例:用SqlDataAdapter填充DataTable,這裏用的是Northwind數據庫中的Employees表
string strcon1 = "Data Source=.;Initial Catalog=Northwind;Integrated Security=True";
using (SqlConnection conn = new SqlConnection(strcon1))
{
conn.Open();
string strsql = "select * from employees";
SqlCommand cmd = new SqlCommand(strsql, conn);
ad = new SqlDataAdapter();
ad.SelectCommand = cmd;
dt = new DataTable("employees");
ad.Fill(dt);
ds = new DataSet();
ds.Tables.Add(dt);
this.dataGridView1.DataSource = ds.Tables[employees];
增加一行記錄:
//新增加一行
DataRow newRow = dt.NewRow();
newRow["EmployeeID"] = 11;
newRow["LastName"] = "Bill";
newRow["FirstName"] = "Gata";
dt.Rows.Add(newRow);
更新:用Update更新時提示要有SqlDataAdapter的InsertCommand ,這裏我們可以用SqlCommandBuilder自動爲我們生成
//使用SqlCommandBuilder自動生成帶有Insert語句的InsertCommand
SqlCommandBuilder cb = new SqlCommandBuilder(ad);
ad.InsertCommand = cb.GetInsertCommand();
//將DataSet中的數據更新到數據庫中
ad.Update(ds, "employees");
}