daSrc是一个数据动态适配器
daSrc.update(ds);
如果里面某一条语句出错,将导致整个事务出错,请问有什么好的方法捕捉到里面的异常,然后让事务持续进行????紧急求救,在线等待........waiting.............
daSrc.update(ds);
如果里面某一条语句出错,将导致整个事务出错,请问有什么好的方法捕捉到里面的异常,然后让事务持续进行????紧急求救,在线等待........waiting.............
解决方案 »
- 如何给WPF中的DataGrid取得焦点的单元格赋值
- C#类型转换问题,有关网络传输的。急急急啊!!!
- 这个程序慢的要死 各位帮忙优化一下代码(给100分!)
- Winform中怎样实现窗体重新加载
- 事件没有触发....
- 关于C#的反射机制?
- datagridview控件在EditOnKeystrokeOrF2 编辑模式下按一个键,单元格内容出现两个字母是什么问题?
- 在学C#之前是否还要先看些什么书?
- 如何用C#实现类似vs.net的界面?
- 如何将位图转换为单色位图?
- 斗胆请问思归和孟子E章:关于winform下xml传输的问题
- 请如何实现在textbox中输入值后,,后动态在listbox中过滤出所需项目?
因该不好捕捉其中的某一句的Exception吧,建议把语句分开执行吧,
更要命的是有的行其实已写入数据库,但异常终止后这些已更新行的RowState并没有被初始化,再次更新就会出现“数据库中已存在...行”的错误。
我用的方法是:
try
{
update.....
}
catch(System.Data.DBConcurrencyException dbError)
{
//用一个窗体遍历出有错误的数据行,并允许用户在此窗体中修复错误重试更新
}
catch(Exception ex)
{
//用DataReader比较现有数据,已写入的行就设置它的RowState = RowState = DataRowState.Unchanged
//重试更新
}
{
da.Update();
...
}
catch
{
//do nothing
}
对于前者,使用普通的try catch 块就可以捕捉,
对于后者,为什么不使用存储过程呢?存储过程是可以捕捉sql语句异常的,尽管不准确,但确实是可以捕捉
.net framework\使用.net framework编程\通过ADO.net访问数据\使用 .NET Framework 数据提供程序访问数据\使用 DataAdapter 事件
估计问题应该不大了,
http://msdn.microsoft.com/library/chs/default.asp?url=/library/CHS/cpref/html/frlrfsystemdatacommondataadapterclasscontinueupdateonerrortopic.asp