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(); } }
……………………
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章