如题!
我有三个数据库
---------
user 库
表: AccountInfo
--------
order 库
表:orderOnline
-----------
card 库
表:userCard------------
我想使用事务处理如下:1,更新user 库 ,Accountinfo表 某条数记录,2 向order库 ,orderOnline表 添加一条新记录,3 删除card库的userCard表的指定记录!!!求解!!!!!!谢谢!
我有三个数据库
---------
user 库
表: AccountInfo
--------
order 库
表:orderOnline
-----------
card 库
表:userCard------------
我想使用事务处理如下:1,更新user 库 ,Accountinfo表 某条数记录,2 向order库 ,orderOnline表 添加一条新记录,3 删除card库的userCard表的指定记录!!!求解!!!!!!谢谢!
C#执行Sql事务处理
//执行事务处理
public void DoTran()
{ //建立连接并打开
SqlConnection myConn=GetConn();
myConn.Open();
SqlCommand myComm=new SqlCommand();
//SqlTransaction myTran=new SqlTransaction();
//注意,SqlTransaction类无公开的构造函数
SqlTransaction myTran;
//创建一个事务
myTran=myConn.BeginTransaction();
try
{
//从此开始,基于该连接的数据操作都被认为是事务的一部分
//下面绑定连接和事务对象
myComm.Connection=myConn;
myComm.Transaction=myTran; //定位到pubs数据库
myComm.CommandText="USE pubs";
myComm.ExecuteNonQuery();//更新数据
//将所有的计算机类图书
myComm.CommandText="UPDATE roysched SET royalty = royalty * 1.10 WHERE title_id LIKE 'Pc%'";
myComm.ExecuteNonQuery();
//提交事务
myTran.Commit();
}
catch(Exception err)
{
throw new ApplicationException("事务操作出错,系统信息:"+err.Message);
}
finally
{
myConn.Close();
}
} private SqlConnection GetConn()
{
string strSql="Data Source=localhost;Integrated Security=SSPI;user id=sa;password=";
SqlConnection myConn=new SqlConnection(strSql);
return myConn;
}
}
public class Test
{
public static void Main()
{
DbTranSql tranTest=new DbTranSql();
tranTest.DoTran();
Console.WriteLine("事务处理已经成功完成。");
Console.ReadLine();
}
}
set XACT_ABORT ON
begin tran
1,更新user 库 ,Accountinfo表 某条数记录,
2 向order库 ,orderOnline表 添加一条新记录,
3 删除card库的userCard表的指定记录!!!
commit tran这样就可以保证事务按照要求处理了。但是只要有一个过程出错,将终止执行并且全部回滚。
begin tran1,更新user 库 ,Accountinfo表 某条数记录--如果出错
if @@error<>0
begin
--抛出错误,客户端可以扑捉到。
raiserror('更新user库过程中出错!',16,1)
--回滚事务
rollback tran
--返回
return
end
--其他的2,3,4同样写。
--最后没问题,提交事务commit tran