SqlDataAdapter.Update()方法与SqlCommandBuilder

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

}

posted @ 2013-05-24 11:26  风雪七月花溅墨  阅读(1396)  评论(0编辑  收藏  举报