说明:比较常用

1 事务的四大特性:

  1.1 原子性atomicity 一个事务中包含的多个SQL语句,要么同时成功,要么同时失败.

  1.2 一致性consistency 事务必须使数据库从从一个一致性状态变成另外一个一致性状态.(银行转账)

  1.3 隔离性 isolation 各个事务执行互不干扰(锁)

  1.4 持久性 durability 对数据库中数据的改变是永久性的.

2 事务的使用

  2.1 在SQLServer中

select * from UserInfo
--01 事务
--01-01 开启事务(try---catch)捕获异常
BEGIN trybegin transactionUpdate UserInfo set StuName = N'逍遥小天狼' where EmpId = 10Update UserInfo set StuAge = N'年龄' where EmpId = 11--01-02 提交事务commit transaction
END tryBEGIN catch--01-03回滚事务rollback tran;
END catch

View Code

  2.2 在C#中

using System;
using System.Collections.Generic;
using System.Data.SqlClient; using System.Linq; using System.Text; using System.Threading.Tasks; namespace TransactionDemo { class Program { static void Main(string[] args) { #region 01事务 //01 连接字符串 string connstr = "Data Source=127.0.0.1;uid=sa;pwd=sa;Initial Catalog=DemoDB;"; using (SqlConnection conn = new SqlConnection(connstr)) { using (SqlCommand cmd = conn.CreateCommand()) { conn.Open(); //02-01创建事务 SqlTransaction tran = conn.BeginTransaction(); //02-02 把事务给cmd的事务属性 cmd.Transaction = tran; try { cmd.CommandText = @"Update UserInfo set StuName = N'逍遥小天狼' where EmpId = 10 Update UserInfo set StuAge = 111 where EmpId = 11"; cmd.ExecuteNonQuery(); //事务提交  tran.Commit(); } catch (Exception) { tran.Rollback(); } } Console.Read(); #endregion } } } }

View Code

3 事务的调用--另一种方法

  3.1 添加引用,引入命名空间using System.Transactions;

 #region 02事务try{using (TransactionScope scope = new TransactionScope()){using (SqlConnection conn = new SqlConnection(connstr)){using (SqlCommand cmd = conn.CreateCommand()){conn.Open();cmd.CommandText = @"Update UserInfo set StuName = N'逍遥小天狼' where EmpId = 10Update UserInfo set StuAge = 111 where EmpId = 11";cmd.ExecuteNonQuery();Console.WriteLine("执行成功!");}}//提交事务
                    scope.Complete();}}catch (Exception){Console.WriteLine("异常");}Console.Read();#endregion

事务2

转载于:https://www.cnblogs.com/YK2012/p/6818997.html

步步为营-50-事务相关推荐

  1. 全Sql语句实现SBO事务日志记录与查询

    接受一个朋友的委托,希望对SBO的事务日志进行记录,并且提供查询分析功能,说实话,行为日志与审计不管对于操作系统.数据库系统或者是用户软件,尽管都是安全考虑所需要的,但是要真正的实现并且通用起来审计, ...

  2. 一文彻底读懂MySQL事务的四大隔离级别

    前言 之前分析一个死锁问题,发现自己对数据库隔离级别理解还不够深入,所以趁着这几天假期,整理一下MySQL事务的四大隔离级别相关知识,希望对大家有帮助~ 事务 什么是事务? 事务,由一个有限的数据库操 ...

  3. 事务、提交、回滚、脏读、幻读等名词解释以及事务隔离级别详解

    看视频的时候,听大佬说commit.事务.脏数据等等名词,听的弟弟是一脸懵呀,今天特地搜集.整理出来了这些名词的解释了,下面我们一起看一下. 文章目录 事务:transaction 概念 四个属性(A ...

  4. mysql 5.7参数目录_mysql5.7配置

    my3306.cnf [client] port = 3306   #端口 socket = /data/mysql3306/mysql3306.sock   #mysql以socket方式运行的so ...

  5. Mybatis动态代理模式实现CRUD

    项目实现的功能 查询所有用户信息 通过Id查询用户信息 添加用户(回显主键) 修改用户信息 删除用户信息 通过用户名字模糊查询 一.引入依赖和工程结构 <?xml version="1 ...

  6. spring学习(四) ———— 整合web项目(SSH)

    清楚了spring的IOC 和 AOP,最后一篇就来整合SSH框架把,记录下来,以后应该会用的到. --WH 一.web项目中如何使用spring? 当tomcat启动时,就应该加载spring的配置 ...

  7. JAVA前端与后端交互面试题

    1.前端与后端交互面试题 1.1. 描述Servlet调用过程? 答案: (1)在浏览器输入地址,浏览器先去查找hosts文件,将主机名翻译为ip地址,如果找不到就再去查询dns服务器将主机名翻译成i ...

  8. TIDB 性能测试(TIUP-TPCC)

    New-Order:客户输入一笔新的订货交易:     Payment: 更新客户账户余额以反映其支付状况;     Delivery: 发货(模拟批处理交易);     Order-Status: ...

  9. 字节面试杂谈——MySQL、Redis

    目录 一.架构:Server层,引擎层 二.引擎:InnoDB,MyISAM 三.聚簇索引和非聚簇索引 四.事务及其四大特性.MySQL中事务提交的过程 五.并发事务带来的问题 六.事务的隔离级别 七 ...

  10. 压力测试报告软件,系统压力测试报告.doc

    系统压力测试报告 xx压力测试报告 编写部门:软件测试部 编写地址:xx项目现场 编写时间:2017年8月 目录 一.引言3 1.测试目的3 2.术语说明3 二.系统环境4 三.测试场景设计5 1.测 ...

最新文章

  1. 04 ffmpeg 从媒体文件解封装,输出YUV420图像
  2. Show Attend and Tell的实现代码中的python知识学习
  3. MySQL 数据库常用存储引擎的特点
  4. 技术员联盟win11系统64位专业版镜像v2021.08
  5. Windows破解笔记-windows API中的SendMessage
  6. HBase中HLog详解
  7. 手把手玩转win8开发系列课程(14)
  8. 2018.10.24
  9. 手把手玩转win8开发系列课程(13)
  10. 安卓开发中关于软键盘处理的一些问题
  11. 技术干货大集锦(一)
  12. PDM系统服务器管理,PDM产品数据管理系统
  13. SQL 汉字笔画排序 音序排序
  14. 大面积无线网络覆盖5大方案,满足不同场所的实际需求
  15. onnx优化系列 - 获取中间Node的inference shape的方法
  16. Linux 下 Influx 安装 初始化 学习笔记
  17. python里不能调用random库_Python标准库教程—random模块
  18. python读取txt转为csv
  19. 深度学习实例第二部分:OpenCV
  20. 【SemiDrive源码分析】【驱动BringUp】41 - LCM 驱动 backlight 背光控制原理分析

热门文章

  1. vue 报错 Cannot read property ‘_wrapper‘ of undefined
  2. c++操作word接口
  3. ISE 启动Modelsim的xilinxcorelib_ver错误
  4. 七、脉冲编码调制:采样、量化、编码 ——网络工程师成长之路
  5. 把手机投影到电脑大屏上如何实现
  6. 程序员智力题:100层楼扔鸡蛋,确定鸡蛋摔碎的楼层N
  7. python决策树预测_决策树案例:基于python的商品购买能力预测系统
  8. mac vscode 运行html,【转载】Mac平台上用VSCode调试C++代码
  9. matlab 合成孔径,逆合成孔径成像MATLAB算法)配书源代码
  10. 中国宏观经济景气指数-月度数据(1991.1-2020.12)