ADO.NET_事务处理
来源:互联网 发布:去痘印 知乎 编辑:程序博客网 时间:2024/06/07 13:50
事务处理是一组数据操作,这些操作要么必须全部成功,要么必须全部失败,以保证数据的一致性和完整性
已成功地完成对一个表的操作,但是关系表尚未更新,因此,数据会出现不一致的现象
确保:成功地进行整个操作或者取消整个操作
【事务处理命令】
已成功地完成对一个表的操作,但是关系表尚未更新,因此,数据会出现不一致的现象
确保:成功地进行整个操作或者取消整个操作
【事务处理命令】
- Begin: 在执行事务处理中的任何操作之前,必须使用 Begin 命令来开始事务处理
- Commit: 在成功将所有修改都存储于数据库时,才算是提交了事务处理
- Rollback: 由于在事务处理期间某个操作失败,而取消事务处理已做的所有修改,这时将发生回滚
【ADO.NET事务处理步骤】
- 创建数据库连接并用Open()方法打开连接;
SqlConnection objSqlConnection =
new SqlConnection("server=SQLDB; uid=sa; pwd=password; database=pubs");
objSqlConnection.Open(); - 使用Connection对象的BeginTransaction()方法开始事务处理,该方法将创建一个事务处理对象。
SqlTransaction objSqlTransaction = objSqlConnection.BeginTransaction(); - 将Command对象的Transaction属性设置为创建的事务处理对象。
objSqlCommand.Transaction = objSqlTransaction; - 用Command对象执行SQL命令;
insertCommand = "Insert into userlogin values ("g", "g");
objSqlCommand.CommandText = insertCommand;
objSqlCommand.ExecuteNonQuery (); - 如果操作过程没有错误,则提交事务处理。如果操作过程中发生错误,则回滚以完成的所有修改;
objSqlTransaction.Commit(); //执行成功时提交数据库
objSqlTransaction.Rollback(); //执行失败时回滚数据库 - 关闭连接:
objSqlConnection.Close();
private void button1_Click(object sender, System.EventArgs e){ SqlConnection conn = new SqlConnection("Data Source=192.168.2.200;uid=sa; password=;database = HaierHR"); conn.Open(); //启用事务 SqlTransaction tran = conn.BeginTransaction(); SqlCommand cmd = new SqlCommand(); cmd.Connection = conn; cmd.Transaction = tran; try { cmd.CommandText = "UPDATE HRRollMain Set TotalMember=TotalMember-100 WHERE RollID = '2005070101'"; cmd.ExecuteNonQuery(); cmd.CommandText = "UPDATE HRRollSum Set TotalSumMember=TotalSumMember+100 WHERE RollSumID = '20050701'"; cmd.ExecuteNonQuery(); tran.Commit(); MessageBox.Show("事务提交成功!"); } catch (Exception ex) { tran.Rollback(); // 提交失败,回滚事务 MessageBox.Show("Error!" + ex.Message); }}
- ADO.NET_事务处理
- ADO.NET_事务处理
- ADO.NET_介绍
- ADO.NET_事务
- ADO.net_连接字符串
- ado.net_登录
- ado.net_注册
- ado.net_导入数据
- ADO.NET_第四篇_OracleDataReader
- ADO.NET_第五篇_DataTable_01
- ADO.NET_第五篇_DataTable_04Merge
- ADO.NET_第五篇_DataTable_05Select
- ADO.NET_第五篇_DataTable_06Compute
- ADO.NET_第五篇_DataTable_07Relations
- ADO.NET_第五篇_DataTable_08DataView
- ADO.NET_第五篇_DataTable_09DataViewRowState
- ADO.NET_第六篇_DataSet
- ADO.NET_第七篇_OracleCommand_01ExecuteNonQuery
- 浅谈Android手机终端客户端的适配测试
- python32 cx_Freeze 生成python exe文件
- MFC对话框程序 屏蔽ESC和ENTER键关闭对话框的方法
- 关于 HTTP meta 的 IE=edge,chrome=1 说明
- Android市场上的又一波诈骗
- ADO.NET_事务处理
- C语言和设计模式(之组合模式)【文章都是来自网络,只要自己吸取了就是自己的】
- 用lua随手写的扑克发牌方案
- Analysis Services 查询性能十大最佳实践
- webkit 编码格式转化
- Building Testable ASP.NET MVC Applications
- 关于mysql的frm文件移植(转移、分离、附加)
- 常用的正则表达式
- C语言和设计模式(之模板模式)【文章都是来自网络,只要自己吸取了就是自己的】