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