鄙人不才,遇一问题,愿大家为之解忧!
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”。我的目的是同时把这个修改更新到真正的数据表中。现在问题是按上面代码是可以做到,但是如果把黄色背景的两句交换位置,那么真正的数据表就更新不了。为什么?谢谢!
1 回答
MM们
TA贡献1886条经验 获得超2个赞
dataAdapter.Update(ds, "menber");这句是执行相应的UPdate 语句。
ds.Tables["menber"].AcceptChanges(); 这句才是真正提交到数据库。因为整个操作是在事务里面执行, 你要 submit 才会提交,
如果你把上面两句对调,那也会提交, 但是由于先提交然后在修改,那实际上是没做任何更改, 所以没效果。
- 1 回答
- 0 关注
- 512 浏览
添加回答
举报
0/150
提交
取消