再次提问事务问题
怎么用事务同时操作mysql和sqlserver.有谁可以给我提供一点参考和代码。谢谢了!
------解决方案--------------------事务同时操作mysql和sqlserver?
一个事务不可以吧?
这针对两个数据库创建两个事务,然后数据库操作之后返回true,false.
两个都是true,提交。否则,回滚。
------解决方案--------------------存储过程:
create procedure [SqlAcTran] As
begin tran
declare @UserInfoError int
delete from [SqlAction] where username= '测试 '
select @UserInfoError =@@error
if(@UserInfoError =0)
commit tran
else
rollback tran
go
asp.net 的部分代码
protected void btn_Click(object sender, EventArgs e)
{
SqlConnection con = new SqlConnection();
con.ConnectionString=ConfigurationManager.ConnectionStrings[ "DSN "].ConnectionString;
con.Open();
//启动一个事务。
SqlTransaction myTran = con.BeginTransaction();
//为事务创建一个命令,注意我们执行双条命令,第一次执行当然成功。我们再执行一次,失败。
//第三次我们改其中一个命令,另一个不改,这时候事务会报错,这就是事务机制。
SqlCommand myCom = new SqlCommand();
myCom.Connection = con;
myCom.Transaction = myTran;
try
{
myCom.CommandText = "insert into SqlAction values ( '测试2 ', '111 ') ";
myCom.ExecuteNonQuery();
myCom.CommandText = "insert into SqlAction values ( '测试3 ', '111 ') ";
myCom.ExecuteNonQuery();
myTran.Commit();
Response.Write( "成功执行 ");
}
catch (Exception Ex)
{
myTran.Rollback();
//创建并且返回异常的错误信息
Response.Write(Ex.ToString());
Response.Write( "写入数据库失败 ");
}
finally
{
con.Close();
}
}
}
}
以上只供参考!不是很完整 !