溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

C#事務的創建及應用

發布時間:2020-06-24 12:59:08 來源:網絡 閱讀:608 作者:liu50472 欄目:編程語言

1、創建事務的結構

SqlConnection sqlConnection = new SqlConnection(); 
...初始化連接 
// 開啟事務 
SqlTransaction sqlTransaction = sqlConnection.BeginTransaction(); 
// 將事務應用于Command 
SqlCommand sqlCommand = new SqlCommand(); 
sqlCommand.Connection = sqlConnection; 
sqlCommand.Transaction = sqlTransaction; 
try 

// 利用sqlcommand進行數據操作 
... 
// 成功提交 
sqlTransaction.Commit(); 

catch(Exception ex) 

// 出錯回滾 
sqlTransaction.Rollback(); 

2、簡單例子


DataTable dt = new DataTable(); 
System.Data.SqlClient.SqlConnection cnn = new System.Data.SqlClient.SqlConnection("連接字符串"); 
System.Data.SqlClient.SqlCommand cm = new System.Data.SqlClient.SqlCommand(); 
cm.Connection = cnn; 
cnn.Open(); 
System.Data.SqlClient.SqlTransaction trans = cnn.BeginTransaction(); 
try 

foreach(DataRow dr in dt.Rows) 

cm.CommandText = "update [表] set [數量] = @amount where productID = @productID"; 
cm.Parameters.Add("@amount",SqlDbType.Int); 
cm.Parameters["@amount"].Value = Convert.ToInt32(dr["amount"]); 
cm.Parameters.Add("@productID",SqlDbType.VarChar); 
cm.Parameters["@productID"].Value = dr["productID"].ToString(); 
cm.ExecuteNonQuery(); 

trans.Commit(); 

catch 

trans.Rollback(); 

finally 

cnn.Close(); 
trans.Dispose(); 
cnn.Dispose(); 

}

3、SQl server中的事務例子

begin transaction 
save transaction A 

insert into demo values('BB','B term')
rollback TRANSACTION A

create table demo2(name varchar(10),age int)
insert into demo2(name,age) values('lis',1)
rollback transaction

insert into demo values('BB','B term')

commit TRANSACTION A

commit TRANSACTION 

4、注意

1。事務必須在連接打開后BeginTransaction();

2.事務添加到SqlCommand(sqlCommand.Transaction = sqlTransaction; )

3、其他數據庫對應做相應調整

4、可以用微軟提供的一個dll,很方便.

 

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女