C#简单事务处理
来源:互联网 发布:php云主机配置 编辑:程序博客网 时间:2024/05/22 06:56
我想从最简单的事务处理讲起。至于有关事务处理的理论,请上网查看或者数据库的教科书就有了。其实我也记不住那些东西,可是我觉得事务就是在同时对多个表格操作的时候比较有用。比如常用的例子,就是转账存钱。我想将工商银行里面的200元转到招商银行的卡中。我这个过程中有两个要处理的,一就是工行卡扣除200元,然后招商银行账号里增加200元。假如在处理的过程中,停电或者在增加招行账户数据出错的时候,如果没有事务处理,那我的工商银行就少了200元,但是我的招行都没有转账成功。所以,在事务处理里,将扣除工行的200元和增加招行200元当做一个事务,事务开始运行,完成之后再提交,假如有出错的情况,进行回滚就好了。
在上面中,我讲到了事务,事务运行,事务提交和事务回滚。具体的理论我在这里就不说了,我也记不住。接下来就是代码实现阶段。
using System;using System.Collections.Generic;using System.Text;using System.Data.OleDb;namespace CSharpTransaction{ class Program { private static string strConn = "provider=microsoft.jet.oledb.4.0;data source=D:\\bank.mdb"; private static OleDbConnection conn = new OleDbConnection(strConn); private static OleDbTransaction trans; static void Main(string[] args) { conn.Open(); try { decimal icbcMoney = 0m; GetICBC(ref icbcMoney); decimal cmbMoney = 0m; GetCMB(ref cmbMoney); icbcMoney = icbcMoney - 200; cmbMoney = cmbMoney + 200; trans = conn.BeginTransaction(); AddCMB(cmbMoney,trans); SubICBC(icbcMoney,trans); trans.Commit(); Console.WriteLine("事务提交成功!"); } catch (Exception ex) { if (trans != null) { trans.Rollback(); } Console.WriteLine(ex.Message); Console.Read(); } } private static void AddCMB(decimal money,OleDbTransaction trans) { string strSQL = "update [cmb] set [money] = " + money + " where myid = '05110220132'"; OleDbCommand cmd = new OleDbCommand(strSQL,conn); cmd.Transaction = trans; cmd.ExecuteNonQuery(); } private static void SubICBC(decimal money,OleDbTransaction trans) { string strSQL = "update [icbc] set [money] = " + money + " where myid = '0511200133'"; OleDbCommand cmd = new OleDbCommand(strSQL, conn); cmd.Transaction = trans; cmd.ExecuteNonQuery(); } private static void GetCMB(ref decimal money) { string strSQL = "select money from [cmb]"; OleDbCommand cmd = new OleDbCommand(strSQL, conn); money = Decimal.Parse(cmd.ExecuteScalar().ToString()); } private static void GetICBC(ref decimal money) { string strSQL = "select money from [icbc]"; OleDbCommand cmd = new OleDbCommand(strSQL, conn); object obj = cmd.ExecuteScalar(); money = (decimal)obj; } }}
这是我自己写的例子,已经运行通过。
- C#简单事务处理
- c#事务处理
- C#事务处理
- C#事务处理
- C#事务处理
- C#实现数据库事务处理的简单示例代码
- C#实现数据库事务处理的简单示例代码
- C#中的事务处理
- c#中的事务处理
- C# 中的事务处理
- c#中的事务处理
- C#中的事务处理
- C#中的事务处理
- C# 数据库事务处理
- C#事务处理简明示例
- C#执行Sql事务处理
- C#中實現Transaction事务处理
- C#中實現Transaction事务处理
- C#中新建一个form实例后调用this.close,都关闭的问题
- poj1664
- Soda 3D PDF Reader:免费PDF阅读器(带格式转换功能)
- 动态规划---0-1背包问题
- 结构体总结
- C#简单事务处理
- MySQL索引背后的数据结构及算法原理
- 理解JavaScript (转载自W3CSchool)
- Head First系列书籍
- oracle单行函数详解
- jQuery操作DOM
- ucos在s3c2410上运行过程整体剖析-从加电到执行main函数
- C++ 中string.find() 函数的用法总结(转载)
- oracle多表查询详解