[英]what is there equivalent to rollback transaction of SQL in c#?
如果在交易中發生任何錯誤
sql將回滾該過程。
BEGIN TRANSACTION
COMMIT
IF @@TRANCOUNT > 0
ROLLBACK
END TRANSACTION
我如何在asp.net C#中做同樣的事情?
檢查以下內容,以了解如何使用Transaction Scope實現隱式事務,這將為您提供C#事務。 如果您為TransactionScope
調用Complete方法,則將被提交,否則將被回滾。
http://msdn.microsoft.com/en-us/library/ee818746(v=vs.110).aspx
以下代碼段顯示了一般思路:
using (SqlConnection connection = new SqlConnection("connection string"))
using (SqlTransaction transaction = connection.BeginTransaction())
using (SqlCommand command = new SqlCommand("command text", connection) { Transaction = transaction })
{
connection.Open();
try
{
command.ExecuteNonQuery();
transaction.Commit();
}
catch
{
transaction.Rollback();
throw;
}
}
如果命令執行失敗並引發任何異常,則事務將回滾。
我真的不太清楚你的問題。 這是我想分享的東西。 我想你是在問這個。
在SQL中,想象一下這樣的事情(不是真正的語法):
begin transaction
insert into table X y= 1, z =2
insert into table A b =1, c =2
commit
現在,假設表A中沒有列b,那么此事務將無法進行。
要在ASP.Net中做同樣的事情,而您幾乎無法控制實際的數據庫事務,那么我會建議將try / catch和transaction結合起來。 不是因為這是正確的方法,而是因為它可以完成您想要的事情。
同樣,這不是正確的方法。 詳細介紹您的問題,更多的人可以提供幫助。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.