RollbackTransaction后DataTable的RowStatus如何处理?

班门弄武 2012-05-14 03:51:28
问题如题,详细如下:
方法1:
public virtual bool Save()
{
foreach (string strTableName in TableList)
{
if (Save(Table) == false)
{
//保存失败回滚事务
RollbackTransaction();
}
}
}

方法2:
public virtual bool Save(DataTable Table)
{
try
{
dataAdapter.Update(dataSet, Table.TableName);
return true;
}
catch (Exception e)
{
return false;
}
}

方法1利用方法2保存多个DataTable,假如在第3次执行方法2保存时出错将RollbackTransaction(),而此时,前2次执行成功的Save也将被Rollback,但是前2次DataTable的RowStatus却不会在回滚到保存前对状态.
当用户修改数据后再次保存时,系统就丢失了1\2次的Modified数据.

请问诸君,这时我该如何处理?我理想情况是:Rollback后,RowStatus也回到了Save前对状态.
...全文
96 2 打赏 收藏 转发到动态 举报
写回复
用AI写文章
2 条回复
切换为时间正序
请发表友善的回复…
发表回复
班门弄武 2012-05-14
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 的回复:]

Ado.net中有批量插入数据表的方法 不用自己写!
[/Quote]

批量插入也就是使用
dataAdapter.Update(dataSet);

而不是我现在使用的
dataAdapter.Update(dataSet, Table.TableName);
只是目前我Update 之前会对UpdateCommand 做一些处理.例如指定只可以修改Table的哪些字段?
也就是说 我吧所有Table的UpdateCommand构建完成后再统一Update?
happyrain2010 2012-05-14
  • 打赏
  • 举报
回复
Ado.net中有批量插入数据表的方法 不用自己写!

111,126

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 C#
社区管理员
  • C#
  • Creator Browser
  • by_封爱
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

让您成为最强悍的C#开发者

试试用AI创作助手写篇文章吧