asp.net怎么使用事务啊!求救啊
发布网友
发布时间:2023-11-21 08:40
我来回答
共3个回答
热心网友
时间:2024-08-10 05:50
你这程序肯定不会回滚了,一个是cmd.sqltransaction=tran,然后又一个cmdt,应该这样:
cmd.sqltransaction=tran;
cmd.sqlconnection=conn;
cmd.commandtext=sql1;
cmd.executenonquery();
cmd.commandtext=sql2;
cmd.executenonquery();
tran.commit();
热心网友
时间:2024-08-10 05:48
好像程序没有错?你存储过程写错了,只能这样
热心网友
时间:2024-08-10 05:42
把tran=Conn.BeginTransaction()和下面的cmd.Transaction=tran;写到try块的外面...
这个涉及到变量作用域,你在try外面并没有实例化tran,因此catch到错误时,rollback的只是一个空引用....
给你写个例子
SqlTransaction tran=Conn.BeginTransaction();
cmd.Transaction=tran;
//这里赋值SQL语句和参数,方便抛出类型不匹配的错误
//....
try
{
cmd.ExecuteNonQuery();
tran.Commit();
}
catch
{
tran.Rollback();
}