首页 新闻 搜索 专区 学院

SqlDataAdapter.Update(DataSet,"DataTableName&

0
悬赏园豆:10 [已解决问题] 解决于 2010-08-13 13:17

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

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”。我的目的是同时把这个修改更新到真正的数据表中。现在问题是按上面代码是可以做到,但是如果把黄色背景的两句交换位置,那么真正的数据表就更新不了。为什么?谢谢!

LitterKen的主页 LitterKen | 初学一级 | 园豆:100
提问于:2010-08-13 11:17
< >
分享
最佳答案
0

dataAdapter.Update(ds, "menber");这句是执行相应的UPdate 语句。

ds.Tables["menber"].AcceptChanges(); 这句才是真正提交到数据库。因为整个操作是在事务里面执行, 你要 submit 才会提交,

如果你把上面两句对调,那也会提交, 但是由于先提交然后在修改,那实际上是没做任何更改, 所以没效果。

收获园豆:10
HUHU慈悲 | 大侠五级 |园豆:9973 | 2010-08-13 11:22
清除回答草稿
   您需要登录以后才能回答,未注册用户请先注册