ado.net mysql 事务_ADO.NET事务

在发布System.Transaction命名空间之前,可以直接用ADO.NET创建事务,也可以通过组件、特性和COM+运行库(位于System.EnterpriseServices命名空间中)进行事务处理。本文如题所示,介绍在这些传统事务处理方式中较为简单的“ASP.NET事务”。

在传统的ADO.NET事务中,如果没有手动创建事务,每条SQL语句就都是一个事务。如果多条SQL语句应参与到同一个事务处理中,就必须手动创建一个事务。

下面通过一个示例演示:

在MySql中建立如下表:

f997ccc008bc60b5f1ba1ac60a520014.png

插入数据如下:

9326e901f8eb2620fca9d0146fb7d344.png

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命名空间的分布式事务)。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/514140.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

这可能是大型复杂项目下数据流的最佳实践

简介: 实际项目中沉淀的数据流最佳实践。 数据流是前端一直以来都存在的一个问题,我们项目沉淀了一套最佳实践,如有问题,欢迎探讨 在旧的 Done 项目中,代码复杂度高,已经到了“牵一发而动全身”&#xff0c…

淘宝推荐、视频搜索背后的检索技术竟是它!深度揭秘达摩院向量检索引擎Proxima

简介: 淘宝搜索推荐、视频搜索的背后使用了什么样的检索技术?非结构化数据检索,向量检索,以及多模态检索,它们到底解决了什么问题?今天由阿里巴巴达摩院的科学家从业务问题出发,抽丝剥茧&#x…

ipython和jupyter哪个好_对Python开发者而言,IPython仍然是Jupyter Notebook的核心

如果你不明白 Jupyter 是什么,这么说吧,它拥有和 IPython 同样的代码,并且是由同一批人开发的,只不过取了一个新名字、安了一个新家。下面这个注脚进一步说明了这一点:我从声明中解读出来的信息是,“Jupyte…

这个高薪行业正在大量招人,你会考虑吗?

作者 | 侯淼淼 出品 | 《新程序员》当人们提及“程序员”这一职业的时候,大多数人的第一想法往往是高薪。然而近年来,随着造车势力的兴起,新一轮的高薪岗位抢人大战正式打响。2021年以来,一汽、东风等传统车厂招聘岗位数量持…

AI在出行场景的应用实践:路线规划、ETA、动态事件挖掘…

简介: 本文是#春招专栏#系列的第1篇,根据高德机器学习研发部负责人damon在AT技术讲坛所分享的《AI在出行领域的应用实践》的内容整理而成。 前言:又到春招季!作为国民级出行服务平台,高德业务快速发展,大量…

lsof查看进程占用文件_Linux 利用lsof命令查找已经删除的文件来释放磁盘空间

测试环境一台服务器/ 根目录空间使用率达到94%,但是通过du -sh * 发现实际空间没没用用到那么多,初步怀疑,之前删除的文件,有运行中的进程一直占用,导致空间没有释放,如图通过du -sh * 发现共实际使用不到1…

AcWing 1238. 日志统计(双指针,滑动窗口)

题目&#xff1a; 1238. 日志统计 - AcWing题库 数据范围 输入样例&#xff1a; 7 10 2 0 1 0 10 10 10 10 1 9 1 100 3 100 3输出样例&#xff1a; 1 3 思路&#xff1a;双指针 代码&#xff1a; #include<iostream> #include<cstdio> #include<cmath>…

基于 Wasm 和 ORAS 简化扩展服务网格功能

简介&#xff1a; 本文将介绍如何使用 ORAS 客户端将具有允许的媒体类型的 Wasm 模块推送到 ACR 注册库&#xff08;一个 OCI 兼容的注册库&#xff09;中&#xff0c;然后通过 ASM 控制器将 Wasm Filter 部署到指定工作负载对应的 Pod 中。Wasm Filter 部署中的所有步骤都使用…

漫话:如何给女朋友解释什么是元宇宙?

作者 | 漫话编程来源 | 漫话编程Metaverse元宇宙这个词&#xff0c;第一次出现是在1992 年&#xff0c;美国著名科幻作家尼尔・斯蒂芬森&#xff08;Neal Stephenson&#xff09;的小说《雪崩&#xff08;Snow Crash&#xff09;》中。在书中&#xff0c;尼尔・斯蒂芬森描述了一…

浅谈分库分表那些事儿

简介&#xff1a; 本文主要阐述在分库分表改造过程中需要考虑的因素以及对应的解法&#xff0c;还有踩过的那些坑。 本文适合阅读群众&#xff1a;需要从单库单表改造为多库多表的新手。 本文主要阐述在分库分表改造过程中需要考虑的因素以及对应的解法&#xff0c;还有踩过的…

java上传大文件_Java超大文件上传解决办法

这里只写后端的代码&#xff0c;基本的思想就是&#xff0c;前端将文件分片&#xff0c;然后每次访问上传接口的时候&#xff0c;向后端传入参数&#xff1a;当前为第几块文件&#xff0c;和分片总数下面直接贴代码吧&#xff0c;一些难懂的我大部分都加上注释了&#xff1a;上…

剪了 20% 的刘海、120Hz 刷新率、1TB 存储,iPhone 13 来了!

作者 | 苏宓出品 | CSDN&#xff08;ID&#xff1a;CSDNnews&#xff09;2011 年 8 月 24 日&#xff0c;乔布斯表示「无法继续担任苹果首席执行官的这一天终于来临」&#xff0c;随后彼时的代理首席执行官蒂姆库克被任命为正式首席执行官&#xff0c;成为苹果公司的新任掌舵者…

阿里云AHAS Chaos:应用及业务高可用提升工具平台之故障演练

简介&#xff1a; 阿里云AHAS Chaos&#xff1a;应用及业务高可用提升工具平台之故障演练 应用高可用服务AHAS及故障演练AHAS Chaos 应用高可用服务&#xff08;Application High Availability Service&#xff09;是阿里云一款专注于提高应用及业务高可用的工具平台&#xff…

SAE助力「海底小纵队学英语」全面拥抱Serverless,节省25%以上成本

简介&#xff1a; 阿里云Serveless应用引擎SAE 具备免运维IaaS、按需使用、按量计费、低门槛服务应用上云&#xff0c;并且支持多种语言和高弹性能力等特点&#xff0c;刚好完美解决了客户长期以来运维复杂、资源利用率不高、开发迭代效率低等问题。 海底小纵队学英语隶属于成都…

低代码从技术走向产品,用友发布自动化设计工具“码前”

低代码以往只被作为技术被讨论&#xff0c;这一次&#xff0c;用友用低代码推出了自动化、一站式“需求产品设计”工具“码前”&#xff0c;帮助企业用户快速完成代码前的所有设计工作。 编辑 | 宋 慧 出品 | CSDN云计算 据《2021中国数字经济发展白皮书》统计&#xff0c;2020…

java连接access驱动_Java 连接Access

Java 连接Access第一次使用连接Access数据库&#xff0c; 记录一下遇到的坑Access驱动下载地址 http://pan.baidu.com/s/1o8ltTfc不使用WINDOW的建立数据源方法&#xff0c;直接在Java代码内部与Access数据库连接public void ConnectAccessFile() throws Exception{Class.forNa…

基于Serverless的云原生转型实践

简介&#xff1a; 新一代的技术架构是什么&#xff1f;如何变革&#xff1f;是很多互联网企业面临的问题。而云原生架构则是这个问题最好的答案&#xff0c;因为云原生架构对云计算服务方式与互联网架构进行整体性升级&#xff0c;深刻改变着整个商业世界的 IT 根基。 云原生架…

监控最佳实践--redis及业务接口

简介&#xff1a; 监控最佳实践--redis及业务接口 1. 背景 1.1 问题 2020-12-04&#xff0c;客户侧redis集群版监控DB0 CPU突增至100%&#xff0c;导致数据库无法正常服务&#xff0c;经排查客户侧业务上存在2M左右的大key导致DB0阻塞。并且客户侧使用的集群连接方式为默认pr…

汽车电气化竞争:获胜的途径

“如果您觉得一切都在掌握之中&#xff0c;那就是您的速度还不够快。”— Mario Andretti 多年来&#xff0c;汽车制造商不断面临对更大功率需求的挑战。在早期&#xff0c;汽车使用 6V 电池供电&#xff0c;直到 20 世纪 50 年代中期&#xff0c;汽车系统演变为 12V 电源&…

从MVC到云原生:CBU研发体系演进之路

简介&#xff1a; 本文对过去十年 CBU 在研发方式和技术架构上的探索做一个简要的回顾总结&#xff0c;以及对未来的展望。 前言 CBU作为集团内最早成立的几个BU之一&#xff0c;有着多年丰富的业务沉淀&#xff0c;而CBU的技术也伴随着业务一起不断地演进和成长着。从PC时代的…