在C#中開啟事務的步驟
01.調用SqlConnection對象的BeginTransaction()方法,創建一個SqlTransaction對象,標志事務開始。
02.將創建的SqlTransaction對象分配給要執行的SqlCommand的Transaction屬性。
03.調用相應的方法執行SqlCommand命令。
04.調用SqlTransaction的Commit()方法完成事務。或調用Rollback()方法終止事務。
4.在進行事務操作中的注意點
01.在調用BeginTransaction()方法開始事務之前,要打開數據庫連接,否則出現異常。
02.如果在事務的Commit()方法或RollBack()方法執行前數據庫連接斷開或關閉,則事務將回滾。
//准備連接字符串
string str = "data source=.;initial catalog=Myschool;uid=sa;pwd=123";
//創建數據庫連接對象
SqlConnection con = new SqlConnection(str);
//sql語句:添加一條記錄到年級表
string sql = "insert into grade values(@gradename)";
//創建SqlParameter對象,設置參數
SqlParameter sp = new SqlParameter("@gradename", txtgradename.Text);
//創建命令對象
SqlCommand cmd = new SqlCommand(sql, con);
//通過Parameter集合的add()方法天填充參數集合
cmd.Parameters.Add(sp);
//打開連接
con.Open();
//默認讓SqlTransaction對象為空
SqlTransaction trans = null;
//開啟事務:標志事務的開始
trans = con.BeginTransaction();
try
{
//將創建的SqlTransaction對象分配給要執行的sqlCommand的Transaction屬性
cmd.Transaction = trans;
//執行sql如果添加成功放回1
int count=cmd.ExecuteNonQuery();
if (count > 0)
{
MessageBox.Show("成功");
//事務提交
trans.Commit();
}
else
{
MessageBox.Show("失敗");
//事務回滾
trans.Rollback();
}
}
catch (Exception)
{
//如果某個環節出現問題,則將整個事務回滾
trans.Rollback();
}
出處:https://www.cnblogs.com/jiuyueBlog/p/9109860.html
