两个更新操作分别操作两个不同数据库,都成功才更新数据库
可以用事务吗?
好像事务是conn.BeginTransaction()
那我连接不同怎么用?
可以用事务吗?
好像事务是conn.BeginTransaction()
那我连接不同怎么用?
解决方案 »
- 如何将保存RGB值的数组转化成一张BMP图像并且显示
- 求解“Log_Educe”方法没有采用“2”个参数的重载
- getprocessbyid创建新组件后原来的那个进程哪里去了
- 如何在程序中调用DOS命令?
- 请教用c#编写一个交互式绘图程序?急!!
- 一个sql的问题?
- 【求助】c# 调用wmi Win32_NetworkAdapter StatusInfo获取到null值
- 我想为什么编译不了C Sharp
- C#的两个问题(特急,分不够还可另开贴加100)
- 急!!!!!!!!!!!!!!这个是什么错误啊??
- 如何在javascript脚本中获取控件属性的值???
- infragistics的主要用途是什么?
有两个DB db1和db2
db1种有一个link 是到db2的
这样在db1种是可以操作db2种的表等内容的你的事物处理的连接 就可以是指向db1的,同时,也可以做db2中想做的操作
我操作就要求
1.
事务开始
update db1.tb1 --成功
update db2.tb2 --成功
事务提交
2.
update db1.tb1 --成功
update db2.tb2 --失败
db1的操作回滚,不更新
3.
update db1.tb1 --失败
update db2.tb2 --不操作
把第一个db的事务放到第二个db执行成功才提交不得了
如何连接另一个
?
一个事务据我所知只能连接一个数据库
你就确定第二个会执行错误?放到前面来??
两个都有可能执行失败阿
如何连接另一个
?
一个事务据我所知只能连接一个数据库---------------------------------------------
有可能行哦,我只要求回滚第一个操作,事务建立在第一个连接上
我回去试试行不行
是两个连接的话,就未各个连接各开一个事务不就可以了吗至于那个先那个后的
呵呵,在第二个执行完了
先commit第一个再commit第二个出现在commit时出错的可能有多少?一般数据错误在提交时的错误比较少吧?
可以查看MSDN中的ServicedComponent类
还有下面两个方法
System.EnterpriseServices.ContextUtil.SetComplete()
System.EnterpriseServices.ContextUtil.SetAbort()
SqlHelper.ExecuteNonQuery(conn,CommandType.StoredProcedure,"pr_GetGoods",sp);
方法层里面没SqlCommand
怎么办?
三层里面
用SqlHelper.ExecuteNonQuery(conn,CommandType.StoredProcedure,"pr_GetGoods",sp);
怎么写事务啊?我感觉就快要成功了
conn1.BeginTransaction() --连接1设事务
try
update db1.tb1 --更新数据库1
if(update db2.tb2 成功) --更新数据库2
tran.Commit(); --两个都成功,提交事务
else
tran.Rollback()
catch
tran.Rollback()
{
using(SqlTransaction t2=conn2.BeginTransaction())
{
if(!处理两个连接的事情(conn1,t1,conn2,t2))
return false; t1.Commit();
t2.Commit();//如果t2.Commit不成功后果比较严重,但这种情况不会那么容易发生。
}
}
有篇文章提到的两个数据库是SQLServer和Orcacle.
配置好两个数据库后,一个链接可以操作两种数据库。
这样的话就比较完美了。
System.EnterpriseServices.ContextUtil.SetComplete()
System.EnterpriseServices.ContextUtil.SetAbort()
同一数据库,
http://blog.csdn.net/zhzuo/archive/2004/08/06/67037.aspx