aspx.net中如何执行SQL事物操作-C#事物操作--示例

《个人经验,仅供参考》

//创建数据库连接
            OleDbConnection  connection = new OleDbConnection(ConnectString.getConnectString());
//注意,这里是一个陷阱,不写会出恶心的异常,因此,使用之前最好判断一下为好。
            if (connection.State != ConnectionState.Open)
                connection.Open();
    //开始事物,执行实务操作:
            OleDbTransaction myTrans = connection.BeginTransaction();
//绑定事物语句::
   //sql_1
             string sql_1 = "update User_Cards set isUsed=1 where cardId="+cardId;
            OleDbCommand command_1 = new OleDbCommand(sql_1,connection, myTrans);
//sql_2
             string sql_2 = "update userBanlance set score = score + "+faceValue +"where userId = "+userId;
            OleDbCommand command_2 = new OleDbCommand(sql_2,connection, myTrans);
//sql_3
             string sql_3 =  String.Format("insert into  chargeLog(userId,cardId,chargeTypeId,chargeTime) values('{0}','{1}','{2}','{3}')",userId,cardId,0,"时间");
            OleDbCommand command_3 = new OleDbCommand(sql_3, connection, myTrans);
//执行事物语句:  
try { command_1.ExecuteNonQuery(); command_2.ExecuteNonQuery(); command_3.ExecuteNonQuery();
//提交  myTrans.Commit(); successState=true; }catch{ myTrans.Rollback(); } finally { command_1.Dispose(); command_2.Dispose(); command_3.Dispose();
//注意这里的写法,这是一个陷阱,如果不写,会出现异常(在下一遍博文里叙述)  if (connection.State != ConnectionState.Closed) { connection.Close(); } }
……………………

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值