2017-02-15 54 views
-3

我想在我的代碼中插入一個函數,它是開始,提交和回滾trans,因爲數據容易出錯。我的代碼是這樣的:如何在SQL Server中實現begin trans,commit trans和rollback

clsDBConnect dbConn = new clsDBConnect(); 
SqlCommand CMD; 
SqlDataReader Reader; 

private void Save() 
{ 
    CMD = new SqlCommand("SELECT * FROM tblEmployees", dbConn.connection); 

    Reader = CMD.ExecuteReader(); 

    while (Reader.Reader()) 
    { 
      while(variable1 != variable2) 
      { 
       //Lots of CMD.ExecuteNonQuery(); 
       //Lots of Reader 
       //Lots of computation 
       variable1 += 1; 
      } 
    } 
} 

我如何可以回滾插入和更新在循環過程中出現的錯誤?

謝謝!

+0

請檢查該http://stackoverflow.com/questions/21465040/commit-and-rollback-in-c-sharp – imsome1

+1

你做完任何研究? https://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqltransaction(v=vs.110).aspx –

+0

我懷疑你可能想重新考慮你的設計。在不知道具體細節的情況下,自動插入和更新循環內容就像是一種代碼味道。 –

回答

0

事務處理是做的方式是這樣的:

DbTransaction trans = dbConn.BeginTransaction(); 
try 
{ 
    // ... do your stuff... 

    // Last line of the try-block... if you are still alive here, commit 
    trans.Commit(); 
} 
catch (Exception e) 
{ 
    // Something evil happened... Rollback 
    trans.Rollback(); 
} 
相關問題