事务是一组组合成逻辑工作单元的数据库操作,虽然系统中可能会出错,但事务将控制和维护每个数据库的一致性和完整性。如果在事务过程中没有遇到错误,事务中的所有修改都将永久成为数据库的一部分。如果遇到错误,则不会对数据库作出任何修改。

例如,在一个银行应用程序中,如果资金从一个帐户转到另一个帐户,则会将一定的金额记入一个帐户的贷方,同时将相同的金额记入另一个帐户的借方。由于计算机可能会因为停电、网络中断等原因而出现故障,所以有可能更新了一个表中的行,但没有更新相关表中的行。如果数据库支持事务,则可以将数据库操作组成一个事务,以防止因这些事件而使数据库出现不一致。

在 ADO.NET 中,可以使用 Connection 和 Transaction 对象来控制事务。若要执行事务,请执行下列操作:

调用 Connection 对象的 BeginTransaction 方法来标记事务的开始。BeginTransaction 返回对 Transaction 的引用。请保留此引用,以便将其分配给在事务中登记的 Command。

将 Transaction 对象分配给要执行的 Command 的 Transaction 属性。如果通过活动的 Transaction 对象对 Connection 执行 Command,但该 Transaction 对象尚未分配给 Command 的 Transaction 属性,则将引发异常。

执行所需的命令。

调用 Transaction 对象的 Commit 方法来完成事务,或调用 Rollback 方法来取消事务。

以下代码示例使用 Microsoft SQL Developer Network上的 ADO.NET 实例来演示事务逻辑。

1

SqlConnection myConnection=newSqlConnection("Data Source=localhost;Initi Catalog=Northwind;Integrated Security=SSPI;");23myConnection.Open();4SqlTransaction myTrans=myConnection.BeginTransaction();//启动一个事务56SqlCommand myCommand=newSqlCommand();//为事务创建一个命令7myCommand.Connection=myConnection;8myCommand.Transaction=myTrans;910try1112

{1314myCommand.CommandText="Insert into Region (RegionID, RegionDescription) VALUES (100,"Description")";1516myCommand.ExecuteNonQuery();1718myCommand.CommandText="Insert into Region (RegionID, RegionDescription) VALUES (101,"Description")";1920myCommand.ExecuteNonQuery();2122myTrans.Commit();//提交事务2324Response.Write("Both records are written to database.两次插入数据都成功");2526}2728catch(Exception e)2930

{3132myTrans.Rollback();//回滚事务3334Response.Write(e.ToString());3536Response.Write("Neither record was written to database.没有一次插入数据成功");3738}3940finally4142

{4344myConnection.Close();4546}

asp.net mysql 事务_ASP.NET里的事务处理(ado.net 数据库应用)相关推荐

  1. asp.net mysql 事务_ASP.NET Core 1.0 使用 Dapper 操作 MySql(包含事务)

    操作 MySql 数据库使用MySql.Data程序包(MySql 开发,其他第三方可能会有些问题). project.json 代码: { "version": "1. ...

  2. asp创建mysql表_asp创建数据库表

    一起谈.NET技术,不附加数据库 ASP.NET调用.sql文件 笔者好久没有写随笔了,这次是遇到提出这样的问题"不用附加数据库,什么修改web.config什么的那么麻烦,而是直接运行一个 ...

  3. asp创建mysql表_asp创建数据库

    Azure 上部署 ASP.NET Core Web App 前言 在云计算大行其道的时代,当你要部署一个网站时第一选择肯定是各式各样的云端服务.那么究竟使用什么样的云端服务才能够以最快捷的方式部署一 ...

  4. asp连接mysql视频_asp连接mysql数据库详细实现代码

    ASP 的 asp连接mysql数据库详细实现代码 想要asp能连接mysql数据库需要安装MySQL ODBC 3.51 驱动 我们先看下面这段代码 代码如下: set conn = server. ...

  5. asp.net mysql 查询_asp.net 多条件查询数据库

    ASP.NET3.5--第一章ASP.NET介绍 第一章  ASP.NET介绍 当微软创建.NET,它不仅仅梦想未来--它还担忧当代web开发技术的困惑和限制.在你开始ASP.NET3.5以前,本书帮 ...

  6. asp连接mysql字符串_asp连接数据库字符串

    asp连接access和sqlserver的方法 Dim Conn,ConnStr dim Sql_Server,Sql_User,Sql_Pass,Sql_Data Sql_Server = &qu ...

  7. asp.net mysql打包_Asp.net与SQL一起打包部署安装

    借鉴MSDN webcasts的Asp.net程序部署和李洪根的一篇文章,然后加上自己的亲身体会,把整个SQL和Asp.net(vb.net)一起打包的全过程写一下. 一.准备必要的文件 1. SQL ...

  8. mysql 事务中锁处理_MySQL事务处理及锁定_MySQL

    bitsCN.com MySQL事务处理及锁定 事务处理(Transaction)是将多个更新命令作为一个整体来执行,从而保证数据整合性的机制. 存储引擎(Storage Engine) MySQL ...

  9. c# mysql 事务_C# 使用SqlTransaction进行事务处理

    事务处理基本原理 事务是将一系列操作作为一个单元执行,要么同时成功,要么同时失败,回滚到最初状态.在事务处理术语中,事务要么提交,要么中止.若要提交事务,所有参与者都必须保证对数据的任何更改是永久的. ...

最新文章

  1. Android 2.0中电话本contact的读写操作(增删改查一)
  2. Android TabLayout(选项卡布局)简单用法实例分析
  3. 撬开骁龙8一看,满满都是顶会论文
  4. fseek linux 大文件_一文搞懂Linux系统开发
  5. 大端和小端的判断及转换
  6. 多线程并发之原子性(六)
  7. Linux清理磁盘挂载点方法(亲测有效)
  8. 35-46集 中心极限定理、置信区间
  9. 矩阵转置(信息学奥赛一本通-T1126)
  10. 关于字节面试过程不会的算法题总结
  11. 前端上传插件Plupload的实际使用(个人实操)
  12. 40 张图揭秘「键入网址发生了什么」
  13. 关于Keil4 C51版本可以编译但是无法完成编译的问题解决
  14. Springboot JPA注解@Enumerated
  15. 排序算法的代码--选择排序综合训练题
  16. 广电物联网大赛正式开启
  17. 【洛谷P2000】拯救世界
  18. android 方法映射,高通Android平台驱动层 MSM8916 键值映射方法
  19. 培养架构思维成为优秀的架构师
  20. 图片旋转90度解决的方法

热门文章

  1. OpenCV人脸识别LBPH算法源码分析
  2. 2016.5.57—— Remove Duplicates from Sorted List
  3. 多返回值函数的编写方法
  4. 委托与事件代码详解与(Object sender,EventArgs e)详解
  5. python爬虫图片实例-【图文详解】python爬虫实战——5分钟做个图片自动下载器...
  6. winpython使用教程-Win系统PyQt5安装和使用教程
  7. python使用界面-用python编写简单ui界面窗口
  8. python 贴吧自动回复机-Python实现微信自动回复机器人详细教程
  9. python开发需要掌握哪些知识-人工智能需要学习哪些专业课程知识?
  10. python散点图拟合曲线-python曲线拟合