SqlDataAdapter.Update(DataSet,"DataTableName&

  鄙人不才,遇一问题,愿大家为之解忧!

protected void Page_Load(object sender, EventArgs e)
{
string sConnectionString;
sConnectionString
= "Data Source=LQG-PC;Initial Catalog = test;User ID=sa;PassWord=73333xxm;";
SqlConnection Conn
= new SqlConnection(sConnectionString);
Conn.Open();
string commandString= "Select BianH AS 编号,ZhuCM AS 注册名,XingM AS 姓名,XingB AS 性别 FROM menber";
SqlDataAdapter dataAdapter
= new SqlDataAdapter(commandString, Conn);
SqlCommandBuilder cbd
= new SqlCommandBuilder(dataAdapter);
DataSet ds
= new DataSet();
dataAdapter.Fill(ds,
"menber");
DataTable dataTable
= ds.Tables["menber"];
string filterStr = "性别='男'";
string strxingb = null;
DataRow[] XingB
= dataTable.Select(filterStr);

for (int i = 0; i < XingB.Length; i++)
{
DataRow temp
= XingB[i];
strxingb
+= temp["性别"] = "men";
XingB[i]
= temp;
}
dataAdapter.Update(ds,
"menber");
ds.Tables[
"menber"
].AcceptChanges();
GridView1.DataSource
= dataTable;
GridView1.DataBind();
}

 

 

 

以上为完整代码。解析:

  数据库有一数据表“menber”,并填充到数据集中,现在更新数据集ds的数据表,把性别字段为“男”的改为“men”。我的目的是同时把这个修改更新到真正的数据表中。现在问题是按上面代码是可以做到,但是如果把黄色背景的两句交换位置,那么真正的数据表就更新不了。为什么?谢谢!

梦里花落0921
浏览 513回答 1
1回答

MM们

dataAdapter.Update(ds, "menber");这句是执行相应的UPdate 语句。 ds.Tables["menber"].AcceptChanges(); 这句才是真正提交到数据库。因为整个操作是在事务里面执行, 你要 submit 才会提交, 如果你把上面两句对调,那也会提交, 但是由于先提交然后在修改,那实际上是没做任何更改, 所以没效果。
打开App,查看更多内容
随时随地看视频慕课网APP