请教跨数据库事务的问题
现在有两张表,分别在不同的数据库,table1在db1数据库中,table2在db2数据库中,现需要在这两张表中做插入事务操作,我在网上看了下,可以通过分布式事务进行提交,具体代码如下:
- C# code
try { using (TransactionScope scope = new TransactionScope()) { //更新northwind数据库的Employees表 using (SqlConnection conOne = new SqlConnection("server=.;uid=sa;pwd=123;database=northwind")) { conOne.Open(); SqlCommand command = new SqlCommand("update Employees set lastname='chen' where employeeid='1'", conOne); int i = command.ExecuteNonQuery(); } //更新pubs数据库的jobs表 using (SqlConnection conTwo = new SqlConnection("server=.;uid=sa;pwd=123;database=pubs")) { conTwo.Open(); SqlCommand command = new SqlCommand("update jobs set job_desc='chen' where job_id='1'", conTwo); int i = command.ExecuteNonQuery(); } scope.Complete(); //提交事物 } } catch (Exception ex) //发生异常后自动回滚 { //throw; }
但是程序运行到conTwo.Open(); 的时候就报“卸载Appdomain 时出错。 (异常来自 HRESULT:0x80131015)”的错误,请高手指教下这是为什么?
还有一点我知道可以通过存储过程去实现跨库之间的事务操作,但是我想通过c#代码的方式去实现,请问还有其他方法吗?
[解决办法]
数据库建同义词 ,可以不需要 跨数据库 这样插入的。
你的那例子有些死板
[解决办法]
连接的代码很工整,也看不出什么错C#
你有没试过,不执行ONE,就是connection one, remark掉
只执行Two,会有这个问题么。
如果没有,说明2个connection有冲突