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";