ADO.NET事務處理

1。使用存儲過程事務處理
2。使用SqlTransaction 類
SqlConnection conn = new SqlConnection("Data Source=192.168.1.105;uid=sa; password=sa;database = kaiyuan");
   conn.Open();
   //啓用事務
   SqlTransaction tran = conn.BeginTransaction();
   SqlCommand cmd = new SqlCommand();
   cmd.Connection = conn;
   cmd.Transaction = tran;
   try
   {
    cmd.CommandText = "UPDATE SH_Material Set MaterialCode='25' WHERE ID = 25";
    cmd.ExecuteNonQuery();
    cmd.CommandText = " UPDATE SH_Material Set MaterialCode='new' WHERE ID = 26  ";
    cmd.ExecuteNonQuery();
     tran.Commit();
    MessageBox.Show("事務提交成功!");
   }
   catch(Exception ex)
   {
       tran.Rollback();
    MessageBox.Show("Error!"+ex.Message);
   }
   finally
  {
      conn.Close();
  }
 
 

如果在sql語句中寫BEGIN TRANSACTION  , COMMIT TRANSACTION是不會有作用的
   sql="BEGIN TRANSACTION \r\n"
    +sql+" \r\n"
    +"COMMIT TRANSACTION";

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章