1. 在ADO.NET 中,可以使用Connection 和Transaction 对象来控制事务。若要执行事务,请执行下列操作:
  2. 1.调用Connection 对象的BeginTransaction 方法来标记事务的开始。
  3. 2.将Transaction 对象分配给要执行的Command的Transaction 属性。
  4. 3.执行所需的命令。
  5. 4.调用Transaction 对象的Commit 方法来完成事务,或调用Rollback 方法来取消事务。 当然ADO.NET事务处理有优点和缺点,运用起来看具体情况了。
  6. 优点: – 简单性 – 和数据据事务差不多的快 – 独立于数据库,不同数据库的专有代码被隐藏了
  7. 缺点: – 事务不能跨越多个数据库连接 – 事务执行在数据库连接层上,所以需要在事务过程中维护一个数据库连接。
  8. 下边我们看一个例子,建立一个页面,同样简单,只需要一个按钮,然后编程:
  9. 1 using System;
  10. 2 using System.Data;
  11. 3 using System.Configuration;
  12. 4 using System.Collections;
  13. 5 using System.Web;
  14. 6 using System.Web.Security;
  15. 7 using System.Web.UI;
  16. 8 using System.Web.UI.WebControls;
  17. 9 using System.Web.UI.WebControls.WebParts;
  18. 10 using System.Web.UI.HtmlControls;
  19. 11 using System.Data.SqlClient;
  20. 12
  21. 13 namespace WebApplication1
  22. 14 {
  23. 15 public partial class AdoAction : System.Web.UI.Page
  24. 16 {
  25. 17 protected void Page_Load( object sender, EventArgs e)
  26. 18 {
  27. 19
  28. 20 }
  29. 21
  30. 22 protected void btn_Click( object sender, EventArgs e)
  31. 23 {
  32. 24 SqlConnection con = new SqlConnection();
  33. 25 con.ConnectionString = ConfigurationManager.ConnectionStrings[ " DSN " ].ConnectionString;
  34. 26 con.Open();
  35. 27 // 启动一个事务。
  36. 28 SqlTransaction myTran = con.BeginTransaction();
  37. 29 // 为事务创建一个命令,注意我们执行双条命令,第一次执行当然成功。我们再执行一次,失败。
  38. 30 // 第三次我们改其中一个命令,另一个不改,这时候事务会报错,这就是事务机制。
  39. 31 SqlCommand myCom = new SqlCommand();
  40. 32 myCom.Connection = con;
  41. 33 myCom.Transaction = myTran;
  42. 34 try
  43. 35 {
  44. 36 myCom.CommandText = " insert into SqlAction values ('测试2','111') " ;
  45. 37 myCom.ExecuteNonQuery();
  46. 38 myCom.CommandText = " insert into SqlAction values ('测试3','111') " ;
  47. 39 myCom.ExecuteNonQuery();
  48. 40 myTran.Commit();
  49. 41 Response.Write( " 成功执行 " );
  50. 42
  51. 43 }
  52. 44 catch (Exception Ex)
  53. 45 {
  54. 46 myTran.Rollback();
  55. 47 // 创建并且返回异常的错误信息
  56. 48 Response.Write(Ex.ToString());
  57. 49 Response.Write( " 写入数据库失败 " );
  58. 50 }
  59. 51 finally
  60. 52 {
  61. 53 con.Close();
  62. 54 }

转载于:https://www.cnblogs.com/qi123/p/9217325.html

ADO.NET 事务控制相关推荐

  1. 谈谈分布式事务之一:SOA需要怎样的事务控制方式

    在一个基于SOA架构的分布式系统体系中,服务(Service)成为了基本的功能提供单元,无论与业务流程无关的基础功能,还是具体的业务逻辑,均实现在相应的服务之中.服务对外提供统一的接口,服务之间采用标 ...

  2. ActiveX数据对象之事务控制在VB和DELPHI中的应用

             本文发表在中国人民解放军"信息工程大学"学报 2001年第3期. ActiveX数据对象之事务控制在VB和DELPHI中的应用                   ...

  3. 【spring】编程式事务控制

    结构: AccountServiceImpl package com.itheima.service.impl;import com.itheima.dao.IAccountDao; import c ...

  4. 【Spring】spring基于注解的声明式事务控制

    结构 domin package com.itheima.domain;import java.io.Serializable;public class Account implements Seri ...

  5. 【spring】spring基于xml的声明式事务控制

    结构 domain package com.itheima.domain;import java.io.Serializable;public class Account implements Ser ...

  6. 【Spring】事务控制API

    Spring事务控制需要明确 1. JavaEE体系进行分层开发,事务处理位于业务层,Spring提供了分层设计==业务层==的事务处理解决方案. 2. Spring框架提供了一组事务控制的接口.在S ...

  7. 【Spring】基于xml实现事务控制(银行转账)

    代码结构 domain类 package com.itheima.domain;import java.io.Serializable;/*** 账户的实体类*/ public class Accou ...

  8. 【Spring】通过动态代理改进银行转账事务控制

    前情 银行转账的案例中,通过给业务层实现类中每个方法中通过事务控制方法添加事务控制,保证每个方法在执行时只有一个数据库连接,通过事务保证整个方法要成功全部成功,要失败都失败. 问题 业务层实现类添加事 ...

  9. 在C#中使用COM+实现事务控制

    .NET技术是微软大力推广的下一代平台技术,自从.NET技术架构的正式发布,此项技术也逐渐走向成熟和稳定.按照微软的平台系统占有率,我们不难想象得到,在未来的一两年内.NET技术必定会势如破竹一般的登 ...

最新文章

  1. 【C#】C#抽象类及其方法
  2. poi的autoSizeColumn方法对全角或者说中文支持不好的一个解决办法
  3. IOS开发基础知识--碎片8
  4. ansible(自动化运维上)——ansible部署,添加主机组,连通性测试
  5. 服务器备份文件格式,证书服务器,备份,还原
  6. jlink怎么调试linux程序_纯Linux下的 ARM裸机调试环境搭建(GDB + JLink)
  7. 在MySQL中,一条查询语句是如何执行的
  8. Oracle时间日期操作
  9. [转]sql server 2005 中的内连接和外连接
  10. sprintf与swprintf
  11. 告诉你一个真实的数字化
  12. python函数大全pdf_python内置函数大全.pdf
  13. aplay与call
  14. 谷歌浏览器显示一直加载的解决方法
  15. 各国语言中的“你好”
  16. html5教程 如何加背景图片
  17. PHP字符串函数strtolower(将字符串转化为小写)
  18. python金融分析培训课程_Python金融分析相关书籍推荐
  19. 利用ADB调试工具获取ROOT权限并卸载OPPO手机系统预装软件
  20. wangEditor上传图片事件抛出处理+解决Form-Making中无法粘贴

热门文章

  1. MongoDB系列之——安装和启动
  2. app store 关键词
  3. 常州模拟赛d4t1 立方体
  4. Android JNI入门第五篇——基本数据类型使用
  5. GitHub初次使用记录(一)
  6. JS(JQEERY) 获取JSON对象中的KEY VALUE
  7. [翻译-ASP.NET MVC]Contact Manager开发之旅
  8. 软RAID-mdadm折腾小记
  9. scanf中的%[^\n]%*c格式
  10. mysql一对多_mysql一对多查询合并多的一方的数据。