在C#中开启事务的步骤

一、调用SqlConnection对象的BeginTransaction()方法,创建一个SqlTransaction对象,标志事务开始。

二、将创建的SqlTransaction对象分配给要执行的SqlCommand的Transaction属性。

三、调用相应的方法执行SqlCommand命令。

四、调用SqlTransaction的Commit()方法完成事务。或调用Rollback()方法终止事务。  

需要注意的点

一、在调用BeginTransaction()方法开始事务之前,要打开数据库连接,否则出现异常。

二、如果在事务的Commit()方法或RollBack()方法执行前数据库连接断开或关闭,则事务将回滚。

示例代码

//准备连接字符串string str = "data source=.;initial catalog=Myschool;uid=sa;pwd=123";//创建数据库连接对象SqlConnection con = new SqlConnection(str);//sql语句:添加一条记录到年级表string sql = "insert into grade values(@gradename)";//创建SqlParameter对象,设置参数SqlParameter sp = new SqlParameter("@gradename", txtgradename.Text);//创建命令对象SqlCommand cmd = new SqlCommand(sql, con);//通过Parameter集合的add()方法天填充参数集合cmd.Parameters.Add(sp);//打开连接con.Open();//默认让SqlTransaction对象为空SqlTransaction trans = null;//开启事务:标志事务的开始trans = con.BeginTransaction();try{//将创建的SqlTransaction对象分配给要执行的sqlCommand的Transaction属性cmd.Transaction = trans;//执行sql如果添加成功放回1int count=cmd.ExecuteNonQuery();if (count > 0){MessageBox.Show("成功");//事务提交trans.Commit();}else {MessageBox.Show("失败");//事务回滚trans.Rollback();}}catch (Exception){//如果某个环节出现问题,则将整个事务回滚trans.Rollback();}

C#中事务的简单使用相关推荐

  1. sqlhelper中事务的简单用法(初学者)

    自己的博客 sql1="INSERT INTO tablename(Id,col1,col2) VALUES(@Id,@col1,@col2)  update tablename2 set ...

  2. Spring事务专题(四)Spring中事务的使用、抽象机制及模拟Spring事务实现

    前言 本专题大纲如下: 事务专题大纲 「对于专题大纲我又做了调整哈,主要是希望专题的内容能够更丰富,更加详细」,本来是想在源码分析的文章中附带讲一讲事务使用中的问题,这两天想了想还是单独写一篇并作为事 ...

  3. mysql中decimal不能为空吗_程序员,知道Mysql中事务ACID的原理吗?

    点击上方"linkoffer", 选择关注公众号高薪职位第一时间送达 引言 照例,我们先来一个场景~ 面试官:"知道事务的四大特性么?" 你:"懂,A ...

  4. mysql 事物的持久性是指_详解MySQL中事务的持久性实现原理

    前言 说到数据库事务,大家脑子里一定很容易蹦出一堆事务的相关知识,如事务的ACID特性,隔离级别,解决的问题(脏读,不可重复读,幻读)等等,但是可能很少有人真正的清楚事务的这些特性又是怎么实现的,为什 ...

  5. redis事务的简单介绍

    所谓事务应具有以下特效:原子性(Atomicity), 一致性(Consistency),隔离性(Isolation),持久性(Durability),简称ACID,但redis所提供的事务比较简单, ...

  6. Spring中事务的使用、抽象机制及模拟Spring事务实现

    本文大纲如下: Spring事务应用大纲 编程式事务 Spring提供了两种编程式事务管理的方法 使用 TransactionTemplate 或者 TransactionalOperator. 直接 ...

  7. spring中事务失效的几种情况

    下面简单介绍下,spring中常见的事务失效的几种情况.让我们在开发的过程避免这些情况,写出正确而且优雅的代码. 文章目录 数据库引擎不支持,mysql需要InnoDB 方法必须是public的 方法 ...

  8. java 事务实现原理_Spring中事务用法示例及实现原理详解

    前言 Spring并不直接管理事务,而是提供了多种事务管理器,他们将事务管理的职责委托给Hibernate或者JTA等持久化机制所提供的相关平台框架的事务来实现. 关于事务,简单来说,就是为了保证数据 ...

  9. 事务例子_Spring事务专题(四)Spring中事务的使用、抽象机制及模拟Spring事务实现...

    Spring中事务的使用示例.属性及使用中可能出现的问题 前言 本专题大纲如下: 「对于专题大纲我又做了调整哈,主要是希望专题的内容能够更丰富,更加详细」,本来是想在源码分析的文章中附带讲一讲事务使用 ...

最新文章

  1. Java语言概述与简单程序
  2. 【译】An Opinionated Introduction to AutoML and Neural Architecture Search
  3. Hive-Based Registry使用
  4. log4j每天生成一份html格式的日志
  5. VS2005 SP1发布,解决只能创建WebSite,无法创建Web Application项目的问题
  6. signature=cb97f07fbd7b371e6311b0d8707b6398,vue 汉字转拼音(filter)
  7. ssh创建密钥对验证
  8. AutoCAD2020快捷键
  9. python语言常用语法汇总
  10. c语言弹窗代码,pc端点击弹窗代码
  11. Linux(2)- Linux基础命令
  12. Linux学习笔记----01
  13. 【路径规划】基于RRT算法实现多机器人路径规划,多起点,统一终点matlab源码
  14. 怎么把本地rpm包导入linux,Linux在本地yum源中增加rpm包(示例代码)
  15. lumen php版本,PHP微框架 Lumen 使用全纪录
  16. Vector源码学习
  17. 教你快速高效接入SDK——Unity统一接入渠道SDK(Android篇)
  18. 2023 年度 A 类学科竞赛项目清单
  19. maven setting,xml
  20. 短视频矩阵源码/客户矩阵搭建

热门文章

  1. 安装ORACLE 时报错 /jre/1.4.2/lib/i386/libawt.so:
  2. python_L2_operator
  3. 多年以后重发:多线程安全的变量模板
  4. python 查询包_查找Python包的依赖包(语句)
  5. 阿里云服务器安装onlyoffice_阿里云服务器安装 JDK 8
  6. 手游pubg mobile服务器正在维护,PUBG Mobile Download Failed怎么解决
  7. 容器性能比无容器服务器,【译】容器 vs 无服务器(Serverless)
  8. 家谱整站源码php_mysql家谱表查询某人所有后代
  9. 开发类似vs的黑色风格_传闻:2020年《使命召唤》将是《黑色行动》重启作品
  10. python计算结果传给spark_Spark入门:流计算简介(Python版)