首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

DataAdapter的Update( DS , "表名" )会自动将数据表的行状态更新为Unchanged状态,如何才能去掉这个功能。小弟

2012-01-20 
DataAdapter的Update( DS , 表名 )会自动将数据表的行状态更新为Unchanged状态,怎么才能去掉这个功能。我

DataAdapter的Update( DS , "表名" )会自动将数据表的行状态更新为Unchanged状态,怎么才能去掉这个功能。我想手动更新行状态。
我举例说一下必要性:
我一次更新两个DataTable,问题出来了。
private   int   UpdateDT()
{
    try
        {
            DataAdapter.Update(   DT1   )   //第1步
            DataAdapter.Update(   DT2   )   //第2步
            //当然,有事务提交语句,为了方便没有写出
            return   0;//成功。
        }
    catch
      {
            //当然,有事务回滚语句,为了方便没有写出
            return   -1;//失败
      }
}
第1步成功了,第2步失败了。此时DT1的行状态都成Unchanged,DT2的行状态没有变。

如果再次调用UpdateDT(),就会产生错误,第1步没有任何操作,而第2步执行成功了。
那么整个操作就数据没有同步。

[解决办法]
试试
SqlDataAdapter da = new SqlDataAdapter(sSql,dbConn);
da.MissingSchemaAction = MissingSchemaAction.AddWithKey;
SqlCommandBuilder cb = new SqlCommandBuilder(da);
da.InsertCommand = cb.GetInsertCommand();
da.UpdateCommand = cb.GetUpdateCommand();
da.DeleteCommand = cb.GetDeleteCommand();

热点排行