在C#中开启事务

 1.为什么要开启事务:

举一个简单的例子:在银行业务中,有一条记账原则,即又借有贷。为了保证这种原则,每发生一笔银行业务,就必须保证会计账目上借方科目和贷方科目至少个少一笔,并且这两笔要么同时成功,要么同时失败。  

   事务是一个单个的工作单元。如果某一个事务成功,则在该事务中进行的所有数据更改均会提交,成为数据库中的永久部分。如果事务遇到错误,这时必须进行回滚操作,则所有数据更改均被清除。

2.在C#中开启事务

我们都知道在数据库中如何开启事务,那么如果想通过在C#中开启事务必须借助Transaction类。

3.在C#中开启事务的步骤

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

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

03.调用相应的方法执行SqlCommand命令。

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

4.在进行事务操作中的注意点

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

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

5.添加年级信息时候的事务处理例子

 //准备连接字符串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();}

 

 

转载于:https://www.cnblogs.com/hyjj/p/5337726.html

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

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

相关文章

【ECharts系列|04可视化大屏】ECharts可视化经典案例总结

收集整理一些ECharts实现可视化大屏效果的一些经典案例,方便在工作的时候及时的响应客户,及修改展示,根据业务需求在此基础修改即可。 第一篇为Echarts入门文档,如果没有Echarts基础,理解起来比较费劲,这个…

云服务器带宽如何计算,云服务器怎么选择带宽

原标题:云服务器怎么选择带宽很多企业或站长在购买云服务器时,对带宽不是很了解。他们认为硬件配置高就行,访问速度就会快。其实访问快慢主要是带宽大小来决定,硬件主要是用来运算的,带宽是用来传输数据的。服务器处理…

【JSON系列】JSON核心知识点总结

JSON: JavaScript Object Notation(JavaScript 对象表示法) JSON 是存储和交换文本信息的语法。类似 XML。 JSON 比 XML 更小、更快,更易解析。 JSON是一种轻量级的数据交换格式。 它基于(欧洲计算机协会制定的js规范)的一个子集,采用完全独立于编程语言…

spring aop实践_使用Spring AOP实现活动记录模式

spring aop实践在课堂设计过程中,我们应就每个班级的职责分配做出决定。 如果我们选择的不错,系统将更易于理解,维护和扩展。 我们几乎所有的项目都有一个持久层,即关系数据库,文档存储或仅XML文件。 通常,…

iOS:Cocoa编码规范 -[译]Coding Guidelines for Cocoa

转载:http://blog.csdn.net/houseq/article/details/27369043 原文地址:https://developer.apple.com/library/mac/documentation/Cocoa/Conceptual/CodingGuidelines/Articles/FrameworkImpl.html Cocoa编码规范 --前言 用公共API开发一个Cocoa框架,插件…

部署promethues采集kubelet数据报错:server returned HTTP status 403 Forbidden

背景 笔者尝试部署手动部署promethues去采集kubelet的node节点数据信息时报错 笔者的promethus的配置文件和promthues的clusterrole配置如下所示: apiVersion: rbac.authorization.k8s.io/v1 kind: ClusterRole metadata:name: prometheus rules: - apiGroups: […

p服务器不响应,无法加载资源:服务器响应状态为500

这里我; m使用角度与mvc当我; m试图发送数据我收到错误如上所示,我也得到一些脚本errr无法加载资源:服务器响应状态为500$scope.DeleteCustomer function(list) {var itemList [];angular.forEach(list, function(value, key) {if (list[key].selected…

【CSS系列】CSS 实现必填项前/后添加红色星号

在一些必填项的标签加星&#xff0c;来提示用户&#xff0c;怎么实现呢&#xff1f;请看本文介绍的两种方法。 1 . 常规写法 <label><span style"color:red;">* </span>孙叫兽 : </label> <input type"text" value""…

二分答案1

ACM中的工作分配问题是一个典型的回溯问题&#xff0c;利用回溯思想能很准确地得到问题的解。下面就这个问题好好分析下。 问题描述&#xff1a; 设有n件工作分配给n个人。为第i个人分配工作j所需的费用为c[i][j] 。试设计一个算法&#xff0c;计算最佳工作分配方案&#xff0c…

sun.misc.Unsafe苦难告诉我们什么

Oracle将删除Java 9中的内部sun.misc.Unsafe类 。 尽管大多数人可能对这种变化漠不关心&#xff0c;但其他一些人&#xff08;主要是图书馆开发人员&#xff09;并非如此。 博客圈中最近有几篇文章描绘了这种变化所暗含的含义&#xff1a; Dripstat 删除了Java 9中的sun.misc.…

2k16显示miui停止服务器,MIUI11停止内测,MIUI12真的来了,与小米MIX4同天发布,与ios13一样流畅丝滑...

原标题&#xff1a;MIUI11停止内测&#xff0c;MIUI12真的来了&#xff0c;与小米MIX4同天发布&#xff0c;与ios13一样流畅丝滑根据miui官方给出的最新公告&#xff0c;现在miui11最后一个开发版基本停止内测&#xff0c;并称“永远相信美好的事情即将发生”&#xff0c;可以确…

【APICloud系列|42】安卓应用和ios应用下载地址生成一个统一二维码的解决办法

前言:这个需要自己的应用已经上线到腾讯应用宝、APPStore. 目录 终极解决办法 原因如下 「微下载」操作指南 推荐两个生成链接的平台

设计之路:如何进行软件需求分析?

1、需求分析的重要性 软件需求是指用户对目标软件系统在功能、行为、性能、设计约束等方面的期望。 通常&#xff0c;软件生存周期包括可行性分析与开发项计划、需求分析、设计&#xff08;概要设计和详细设计&#xff09;、编码、测试、维护等活动。 常用的三种软件生命周期&a…

如何学好初中计算机,初中生怎么学习方法好 十大方法告诉你

1、学会建目录。一本教科书大约有十章&#xff0c;每章几页&#xff0c;十几页以上&#xff0c;包含许多标题&#xff0c;每个标题包含许多副标题&#xff0c;每个副标题包含一些知识点。当你第一次阅读时&#xff0c;根据章节&#xff0c;提取标题和知识指出&#xff0c;写笔记…

wadl 生成java_在Spring MVC REST应用程序中自动生成WADL

wadl 生成java上一次我们学习了WADL的基础知识 。 语言本身并没有那么有趣&#xff0c;只写了一篇有关它的文章&#xff0c;但是本文的标题揭示了为什么我们需要这些知识。 JSR 311的许多实现&#xff1a;JAX-RS&#xff1a;RESTful Web服务的Java API提供了开箱即用的运行时WA…

使用js设置ul标签的显示或隐藏和超链接调用js文件的方法

<ul class"nav" id"rm" styledisplay:none> <li> <a href# onclickRepayment() >还款信息</a></li> </ul> document.getElementById("rm").style.display"none" 转载于:https://www.cnblogs.co…

安卓应用和ios应用下载地址生成一个统一二维码

前言&#xff1a;这个需要自己的应用已经上线到腾讯应用宝、APPStore.终极解决办法腾讯应用宝「微下载 」&#xff0c;是目前生成二合一APP推广二维码的最佳方式。原因如下1. 微信仅支持应用宝「微下载」&#xff0c;才能直接下载APP● 微信拥有11亿用户量&#xff0c;“扫一扫…

css居中悬浮,CSS悬浮居中

百分比&悬浮栏.box{width:90%;background-color:gray;border:0px solid #000;margin-left:-45%;/*margin数值相当于width数值的负一半*/font-size:16px;/*行高默认为*/position:fixed;top:0%;left:50%;/*left数值永远等于50%(想要居中的话)*/text-align:center;color:#fff;…

在Java SE中使用Hibernate Bean Validator

Bean Validation主页上指出&#xff1a;“ Bean Validation是Java规范&#xff0c;…在Java SE中运行&#xff0c;但集成在Java EE&#xff08;6和7&#xff09;中。” 这篇文章演示了如何在Java EE容器之外使用Java Bean验证参考实现&#xff08; Hibernate Validator &#x…

程序员应该如何才能买房?

前段时间对象问我应该在哪买房&#xff0c;我的意见是现在一个小的城市搞个刚需房&#xff0c;后面可以再换个一线的大房子&#xff0c;后来她的建议是在工作附近搞一套&#xff0c;这样不用一边工作一边还房贷。无奈只能咨询各位大咖。看完这个大佬的经历&#xff0c;发现好多…