日期:2014-05-20  浏览次数:20901 次

更新dataset到数据库,执行成功,但数据未被修改。
SqlDataAdapter   da   =   new   SqlDataAdapter( "select   *   from   测点信息 ",   conn);
DataSet   ds   =   new   DataSet();

ds.ReadXmlSchema(new   StringReader(SchemaText));
ds.ReadXml(new   StringReader(XmlText),XmlReadMode.InferSchema);
               
ds.Tables[0].Rows[0].AcceptChanges();
ds.Tables[0].Rows[0].SetModified();
               
SqlCommandBuilder   commandBuilder   =   new   SqlCommandBuilder(da);
int   i   =   da.Update(ds,   "测点信息 ");

-------------------------------

执行完后,i=1,但表里的数据未更新。

如果删除以下语句:

ds.Tables[0].Rows[0].AcceptChanges();
ds.Tables[0].Rows[0].SetModified();

则dataset的数据能成功新增到表里,但我需要是update而不是insert。

不知道上面的代码哪里出了问题,望各位大侠帮忙看看。




------解决方案--------------------
ds.Tables[0].Rows[0].AcceptChanges();
ds.Tables[0].Rows[0].SetModified();
这里肯定有问题,估计没有改变原来的值,所以执行成功,但数据没变
------解决方案--------------------
ds.AcceptChanges();
------解决方案--------------------
ds.Tables[0].Rows[0].AcceptChanges();
在调用update前用它?

它把所有rowstate都改成unchange,还更新什么啊?
------解决方案--------------------
--------------------
ds.Tables[0].Rows[0].AcceptChanges();
在调用update前用它?

它把所有rowstate都改成unchange,还更新什么啊?
---------------------
我也这么认为,DataSet更新是更新的其中改变的内容。