ado.net mysql 事务_ADO.NET事务
在发布System.Transaction命名空间之前,可以直接用ADO.NET创建事务,也可以通过组件、特性和COM+运行库(位于System.EnterpriseServices命名空间中)进行事务处理。本文如题所示,介绍在这些传统事务处理方式中较为简单的“ASP.NET事务”。
在传统的ADO.NET事务中,如果没有手动创建事务,每条SQL语句就都是一个事务。如果多条SQL语句应参与到同一个事务处理中,就必须手动创建一个事务。
下面通过一个示例演示:
在MySql中建立如下表:
插入数据如下:
ADO.NET事务测试代码:
using(MySqlConnection conn = new MySqlConnection(GetConnection()))
{
conn.Open();
//启动一个事务
using(MySqlTransaction transaction = conn.BeginTransaction())
{
using (MySqlCommand cmd = conn.CreateCommand())
{
try
{
cmd.Transaction = transaction; //为命令指定事务
cmd.CommandText = "INSERT INTO tb_user(UserId,UserName) VALUE('Id0009','Name0002');";
cmd.ExecuteNonQuery();
cmd.CommandText = "INSERT INTO tb_user(UserId,UserName) VALUE('Id0008','Name0003');";
cmd.ExecuteNonQuery();
transaction.Commit(); //事务提交
Response.Write("");
}
catch(Exception ex)
{
transaction.Rollback(); //事务回滚
Response.Write(ex.Message);
Response.Write("");
}
}
}
}
代码分析:
如示例代码手动创建ADO.NET事务步骤如下:
1)使用MySqlConnection类的BeginTransaction()方法返回一个MySqlTransaction类型的对象;
2)使用MySqlCommand类对象的Transaction属性将要参与事务处理的每条命令关联到上一不返回的MySqlTransaction类型的对象上;
3)如果事务可以成功完成,使用MySqlTransaction对象的Commit()方法提交事务处理结果;
4)如果事务处理中发生错误,就调用MySqlTransaction对象的Rollback()方法,撤销每一个修改。
ADO.NET事务的缺点;
ADO.NET事务只能处理关联到一个连接上的本地事务,不支持跨多个连接的事务。(为了克服这一缺点,下一节将介绍基于System.Transaction命名空间的分布式事务)。
ado.net mysql 事务_ADO.NET事务相关推荐
- ado的mysql参数化_ADO参数化(VBA)
ADO参数化的好处 避免SQL注入攻击:2. 省去SQL字符串拼接:3. 避免出错 方式一 Dim cn As ADODB.Connection Dim rs As ADODB.Recordset D ...
- ado.net mysql 下载_ADO.Net连接Mysql
首先下载一个mysql.data.dll拷贝到bin下面并引用一下 using MySql.Data.MySqlClient; class Program { static void Main(str ...
- MySQL 学习笔记(9)— 事务控制语句、事务属性以及并发和隔离级别
1. 事务概念 事务处理(transaction processing)可以用来维护数据库的完整性,它保证成批的 MySQL 操作要么完全执行,要么完全不执行. 下面是关于事务处理需要知道的几个术语: ...
- 关于MySQL的四种事务隔离级别!
本文实验的测试环境:Windows 10+cmd+MySQL5.6.36+InnoDB 一.事务的基本要素(ACID) 原子性(Atomicity):事务开始后所有操作,要么全部做完,要么全部不做,不 ...
- mysql show 原理_mysql事务的实现原理
此篇文章算是对mysql事务的一个总结,基本把mysql事务相关的知识点都涵盖到了,面试问来问去无非也就是这些,在了解这些之前我们先对mysql在执行的过程中 有一个整体的认识,如下图 如上图所示, ...
- MySQL数据库中的事务(四大特性)
1. 事务的介绍 事务就是用户定义的一系列执行SQL语句的操作, 这些操作要么完全地执行,要么完全地都不执行, 它是一个不可分割的工作执行单元. 2. 事务的四大特性 原子性(Atomicity) 一 ...
- mysql选什么隔离级别_互联网项目中mysql应该选什么事务隔离级别
摘要 企业千万家,靠谱没几家. 社招选错家,亲人两行泪. 祝大家金三银四跳槽顺利! 引言 开始我们的内容,相信大家一定遇到过下面的一个面试场景 面试官:"讲讲mysql有几个事务隔离级别?& ...
- 数据库基础笔记(MySQL)6 —— 基础事务
事务 只与 DML 语句有关 ( 关于数据的 增删改 ) 一个事务由一条或多条 DML 语句组成,一个事务在提交事务后才会将数据彻底修改到数据库中,再提交前,我们可以用回滚回到指定位置,相当于可以撤回 ...
- MySQL基础篇:事务管理
事务 DCL 用来控制数据库的访问,包括如下 SQL 语句: GRANT:授予访问权限 REVOKE:撤销访问权限 COMMIT:提交事务处理 ROLLBACK:事务处理回退 SAVEPOINT:设置 ...
最新文章
- 【delphi】Byte数组与String类型的转换
- JAVA EXCEL API详解
- 李连杰年度巨作霍元甲主题曲:周杰伦唱
- selenium webdirver之ruby-开发ide安装
- SWT学生成绩管理系统
- 爬虫 requests 模块
- mysql服务器的搭建_基于linux的Mysql服务器的搭建
- Ubuntu 16.04 install Docker 1.12.0
- 蓝桥杯第五届JavaC组杨辉三角问题解决方法
- Zookeeper数据同步流程
- POI实现合并单元格
- java语言jsp技术_JavaWeb:JSP技术基础
- 200行代码实现推流到直播平台
- php获取openid 40163报错,微信网页授权 通过code获取openid 报错40163 code been used
- SSRF利用协议中的万金油——Gopher
- 将VBS脚本编译成加密版本的VBE脚本
- 杰奇php手机登陆自动跳转,杰奇cms电脑与手机自动判断跳转代码
- win32汇编 MASM03
- 临床试验中edc录入_临床试验中使用EDC的情况?
- 一个典型的神经网络包括,神经网络的应用实例