需引用using System.Transactions;
建测试表
create table t1
(
id int
)
建测试存储过程1
create proc prc1
as
begin tran
insert into t1 values(1)
commit
go
建测试存储过程2
create proc prc2
as
raiserror('error!',16,1)
go
示例代码
Database db = DatabaseFactory.CreateDatabase(); //连接第一个数据库
Database db1 = DatabaseFactory.CreateDatabase("con1");//连接第二个数据库
using (TransactionScope scope = new TransactionScope())
{
try
{
db.ExecuteNonQuery(CommandType.Text, "prc1"); //t1表中有一行数据
db1.ExecuteNonQuery(CommandType.Text, "prc2");//抛异常
}
catch
{
return;//返回 未提交 t1表中无数据
}
finally
{
//
}
scope.Complete(); //提交
}