Sql-事务
private void Form1_Load(object sender, EventArgs e){SqlConnection con = new SqlConnection(@"SERVER=localhost;UID=sa;DATABASE=GG;MultipleActiveResultSets =true;PWD=123456");con.Open();創建事務并賦值SqlTransaction tran= con.BeginTransaction();//創建SqlCommand實例SqlCommand _delete=con.CreateCommand();SqlCommand _insert = con.CreateCommand();SqlCommand _select = con.CreateCommand();SqlCommand _update = con.CreateCommand();//通過同一個SqlConnection創建的SqlCommand,每一個都需要事務,否則報錯_delete.Transaction = tran;_insert.Transaction = tran;_select.Transaction = tran;_update.Transaction = tran;try{_delete.CommandText = "delete from t_user where no=11 or no=12";_delete.ExecuteNonQuery();_insert.CommandText = "insert t_user (no,age,name) values(11,111,1111)";_insert.ExecuteNonQuery();在SQL語句未執行完提交,后面的語句報錯不會回滾tran.Commit();_update.CommandText = "update t_user set name=12,no=12,age=12 wh2ere no=11";_update.ExecuteNonQuery();_select.CommandText = "select * from t_user";SqlDataAdapter adt = new SqlDataAdapter(_select);DataTable dt = new DataTable();adt.Fill(dt);dataGridView1.DataSource = dt;//提交事務(在與本事務相關sql語句執行完之后提交)tran.Commit();}catch (Exception ex){//從掛起狀態回滾事務,不需要寫tran.Rollback();,報錯會自動運行//tran.Rollback();MessageBox.Show(ex.Message.ToString(), this.Text, MessageBoxButtons.OK, MessageBoxIcon.Question);}finally{con.Close();}}
轉載于:https://www.cnblogs.com/lhlong/p/4838653.html
總結
- 上一篇: Centos安装后的一些必要处理工作
- 下一篇: OpenCV2学习笔记(十四):基于Op