mysql 多数据库事务_多数据库事务处理
看见园子里面一位高人写了一篇多数据库事务处理的东西,觉得很有意思,把它重写了一下。
在一个数据库中实现事务是没什么问题,当时项目中常常会遇到多个数据库交叉事务的情况,这个方法使用两个SqlTransaction 来处理这两个数据库中的事务,当一个更新不成功两个都要回滚。
public void TransactionDebug()
{
string sql1 = @"Data Source=XXXXXX;Initial Catalog=stuDB;Integrated Security=True";
string sql2 = @"Data Source=XXXXXX;Initial Catalog=Northwind;Integrated Security=True";
SqlConnection conn1 = new SqlConnection(sql1);
SqlConnection conn2 = new SqlConnection(sql2);
string sqlUpdate1 = "UPDATE stuInfo SET stuAddress='江南' WHERE stuNO='s25301'";
string sqlUpdate2 = "UPDATE Products SET ProductName='Chian' WHERE ProductID=1";
SqlCommand sc1 = new SqlCommand(sqlUpdate1, conn1);
SqlCommand sc2 = new SqlCommand(sqlUpdate2, conn2);
conn1.Open();
SqlTransaction sqlTran1 = conn1.BeginTransaction();
conn2.Open();
SqlTransaction sqlTran2 = conn2.BeginTransaction();
int effectrow=0;
using(TransactionScope tranScope = new TransactionScope())
{
try
{
sc1.Transaction = sqlTran1;
effectrow += sc1.ExecuteNonQuery();
sc2.Transaction = sqlTran2;
effectrow += sc2.ExecuteNonQuery();
}
catch(SqlException ex)
{
sqlTran1.Rollback();
sqlTran2.Rollback();
conn1.Close();
conn2.Close();
throw ex;
}
if(effectrow == 2)
{
sqlTran1.Commit();
sqlTran2.Commit();
}
else
{
sqlTran1.Rollback();
sqlTran2.Rollback();
}
conn1.Close();
conn2.Close();
}
}
mysql 多数据库事务_多数据库事务处理相关推荐
- mysql服务器级别角色_服务器数据库系列 - MySQL事务隔离级别详解
作者:xm_king SQL标准定义了4类隔离级别,包括了一些具体规则,用来限定事务内外的哪些改变是可见的,哪些是不可见的.低级别的隔离级一般支持更高的并发处理,并拥有更低的系统开销. Read Un ...
- 【MySQL 第17章_其他数据库日志】
第17章_其他数据库日志 1.MySQL支持的日志 1.1日志类型 1.2日志的弊端 2.慢查询日志(slow query log) 3.1问题场景 3.2 查看当前状态 3.3 启动日志 3.4 查 ...
- jsp和mysql答辩_如何应对JSP连接MySQL数据库问题_网站数据库怎么连接到网页答辩问题...
当您面临JSP连接MySQL数据库问题,你首先需要在MySQL数据库里创建一username表,表里面创建两个字符型的字段,字段名分别为:uid,pwd,然后插入几条测试数据. 以下用两种方式来实现J ...
- 增大mysql修改表空间_扩充数据库表空间
ALTER TABLESPACE ADD DATAFILE , [REUSE] NEXT MAXSIZE <>中是你要填的内容,有|是选其一. 如:增加文件是d:\dbfs\mydatab ...
- mysql文件碎片整理_对数据库磁盘驱动器进行碎片整理 | Microsoft Docs
对 SQL Server 数据库磁盘驱动器进行碎片整理 12/02/2020 本文内容 本文提供了有关 SQL Server 数据库驱动器的碎片整理的一些指南. 原始产品版本: SQL Serve ...
- 改变mysql的数据编码格式_修改数据库编码格式(转)
MySQL的默认编码是Latin1,不支持中文,要支持中午需要把数据库的默认编码修改为gbk或者utf8. 1.需要以root用户身份登陆才可以查看数据库编码方式(以root用户身份登陆的命令为:&g ...
- mysql的多媒体类型_多媒体数据库技术及其发展方向
多媒体数据库(M如IDB, Multimedia Database)是多媒体技术与产生的一种新型数据库.是指数据库中的信息不仅.字符等格式化的表达形式,而且还包括多媒体的非格,数据管理要涉及各种复杂对 ...
- mysql中家庭关系_家庭数据库是什么
什么是家庭数据库 家庭数据库(Home DataBase,HDB)是存储资料.知识.工作文件.音视频节目的载体,是支持家用多媒介平台的基石. 家庭数据库的建立 为了对家庭中的各种类型的信息进行管理,首 ...
- 数据库事务隔离级ORACLE数据库事务隔离级别介绍
本文系转载,原文地址:http://singo107.iteye.com/blog/1175084 数据库事务的隔离级别有4个,由低到高依次为Read uncommitted.Read committ ...
最新文章
- 50 种系统免遭黑客侵袭的方法 [2017 年版]
- input 换行_Python输出数据print,获取输入数据input,基础入门
- Leetcode 94.二叉树的中序遍历 (每日一题 20210712)
- ps -aux|grep 详细信息
- Delphi XE5 for Android (十一)
- ubuntu 自动挂载工具_Ubuntu设置开机自动挂载所有格式硬盘分区
- 获取对象的接口信息(方法/属性/事件)(VB6代码)
- 【清北学堂2018-刷题冲刺】Contest 2
- AndroidStudio实现在图片上涂鸦并记录涂鸦轨迹
- 坚果pro2刷Nitrogen OS安卓pie纯正原生
- 【准备篇】1.Simulink-F28335自动代码生成开发环境搭建
- 用rest造句子_rest造句
- C语言随机获取小写字母
- 【数学】微积分的大用处
- 一个人写公众号能赚多少钱?我的副业之路
- 美团外卖开放平台对接经验总结(一)
- Linux显示瞬间进程动态的命令ps
- Arm芯片上电启动流程剖解
- 【蓝桥杯嵌入式】第十二届蓝桥杯嵌入式省赛程序设计试题以及详细题解
- 零基础HTML教程(13)--霸道的div与和气的span