大家好。。请赐教 我的前台是C#后台是DB2 当然后台是什么无关紧要。
我有两个数据库,分别都要写数据。。怎么实现他们之间的事务处理呢?
我有两个数据库,分别都要写数据。。怎么实现他们之间的事务处理呢?
解决方案 »
- 将带百分号的16进制字符串转换为带 汉字+字母+数字的字符串
- (ADO.NET中)SELECT category, [id] AS PhotoID......中的[]符号作用
- DatagridView数据添加删除的问题?
- 如何取动态生成的文本框里的值 分别赋值给不同的变量
- 请教c#中大写字母的问题
- ====简单问题:WinForm里面:如何将用户控件内Panel的事件映射到UserControl的事件?====
- 如何实现销售的先进先出
- 当应用程序窗口没被击活时,用快捷键使用程序里的功能,代码如何写啊?
- PropertyGrid怎样在自定义类的编辑上出现三个小点的按扭?
- 请问用C#做windows 应用程序好 还是 做web应用程序好?
- OLE自动化还有前途吗??
- 如果要用.NET做游戏,是C#还是VC++.NET好?
Conn1.StartTrans();
Conn2.StartTrans();
try
{
对两个数据库进行操作
Conn1.Commit();
Conn2.Commit();
}
catch
{
Conn1.RollBack();
Conn2.RollBack();
}
提交时发生并不预见的意外。。那么Conn1.RollBack()时是没用的啊。因为Conn1提交后是不
能再回滚的。
一般情况下,如果SQL有错误,或者数据有错误,那么在对数据库操作时,就已经发声,Conn2.Commit();会100%成功。
特殊情况下,如CONN1提交成功后,突然网络断开,导致Conn2.Commit();提交不成功的几率非常小,因为,Conn2.Commit();这个动作会很快。
Conn2.Commit();
把执行最快的放在后面,根据我的经验(在一个事务里操作2万多SQL),提交时间仍然小于0.1秒。
另外,可以再优化下,针对Conn1提交成功Conn2提交失败做一个日志,方便以后维护。
在业务操作经常会发现数据的不完整让人非常头痛
我的业务操作是不能让错误有可能的所以象你们讨论的这种情况。。虽然
发生的机率不大。。但还是不小。。
如果要解决这个问题。。除了COM+之外我想不到其它办法。。而COM+在运行时速度有些慢
而且环境要求高。。在我开发的机器上能通过。。到了工作站上就不能通过。。一只没有解决。。