用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");
}