SqlTransaction事务的用法

SqlTransaction事务的用法使用SqlTransaction实现数据库操作事务 SqlTransaction类是对SQLServer数据库进行事务处理的类,该类的实例由SqlConnection类实例的BeginTransaction方法创建,表示在该数据库连接实例上开始一个数据库事务,创建SqlTransaction类实例后,在程序中使用该实例的Commit方法提交事务,或者使用该类的Rollback方法回滚事…

大家好,又见面了,我是你们的朋友全栈君。

使用SqlTransaction实现数据库操作事务

 

SqlTransaction类是对SQL Server数据库进行事务处理的类,该类的实例由SqlConnection类实例的BeginTransaction方法创建,表示在该数据库连接实例上开始一个数据库事务,创建SqlTransaction类实例后,在程序中使用该实例的Commit方法提交事务,或者使用该类的Rollback方法回滚事务。

 

 

SqlTransaction示例

 

下面的示例创建一个 SqlConnection 和一个 SqlTransaction。此示例演示如何使用BeginTransactionCommitRollback 等方法。出现任何错误时事务都会回滚。Try/Catch 错误处理用于处理尝试提交或回滚事务时的所有错误。

 

using System;
using System.Data;
using System.Data.SqlClient;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using CNTVS.TOOLS;
 
public partial class _Default : System.Web.UI.Page 
{
     protected void Page_Load(object sender, EventArgs e)
     {
         
     }
     protected void Button1_Click(object sender, EventArgs e)
     {
         SqlConnection conn = Database.GetConn();
         SqlTransaction st = conn.BeginTransaction();
         try
         {
            
             string sql = "Insert Into T_Test(F_Name) values('A')";            
             Database.ExecuteNonQuery(st, CommandType.Text, sql);
 
            //这里会报错,在挂起的事务中,该事务分配的连接,不能再独占使用
             //string A = Database.ExecuteScalarToStr(conn,CommandType.Text,"Select F_ID From T_Test where F_Name='A'");
             
             sql = "Insert Into T_Test2(F_ID,F_Age) values(1,2)";
             Database.ExecuteNonQuery(st, CommandType.Text, sql);
             st.Commit();           
           
         }
         catch (Exception Ex)
         {
             st.Rollback();
             Website.WriteError(Ex);
         }
         finally 
         {
             Database.Dispose(conn);
         }
     }
 }

 

 

 

参考资料:    SqlTransaction事务的用法     http://www.studyofnet.com/news/193.html

版权声明:本文内容由互联网用户自发贡献,该文观点仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请联系我们举报,一经查实,本站将立刻删除。

发布者:全栈程序员-站长,转载请注明出处:https://javaforall.net/132696.html原文链接:https://javaforall.net

(0)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • CSS滚动条[通俗易懂]

    CSS滚动条[通俗易懂][1]定义[2]默认[3]尺寸[4]兼容[5]自定义

    2022年7月2日
    26
  • emwin实体按键_qt指示灯控件

    emwin实体按键_qt指示灯控件分享一个emWin软键盘控件[复制链接]本帖最后由glcd于2016-6-2716:30编辑花了两天时间做了个emWin软键盘控件,并命名为ButtonSKB控件:image001.png(20.29KB,下载次数:0)2016-6-2716:19上传前言:(1)ButtonSKB已经是1个控件,即可以像使用Button控件一样使用ButtonSKB。(2)ButtonSKB…

    2022年10月14日
    3
  • 私域流量辅助工具

    什么是私域流量?私域流量是指从公域、它域(平台、媒体渠道、合作伙伴等)引流到自己私域(官网、用户名单),以及私域本身产生的流量(访客)。私域流量是可以进行二次以上链接、触达、发售等市场营销活动用户数据。  对于企业来说,随着流量红利的耗尽,企业新客增量逐渐达到瓶颈,想要维持业绩增长,挖掘老用户更多价值就成为了很多公司的共识。公域流量获客成本较高,而私域流量则不用付费就能够为品牌带来更多新用户。在私域运营中,品牌往往更注重用户需求,而不是货品,因此,这些新用户在品牌的私域流量用户池中,往往比公域流量的用户更

    2022年4月7日
    59
  • Idea正则表达式一键替换注释,生成@ApiModelProperty(““)「建议收藏」

    平常日常开发中,返回给前端的vo对象在字段上需要加注释@ApiModelProperty(“xxx”),方便在前端同事在swagger文档看注释,一般我是domain对象生成之后,复制代码到vo对象里,然后再修改Java块注释为前端的注释@ApiModelProperty(“xxx”),那怎么从以下的代码注释转为@ApiModelProperty(“xxx”)注释呢?如果字段很多的话,一个一个写会比较耗时也枯燥,可以用正则表达式一键替。/***xxx*/(1)doma

    2022年4月14日
    160
  • Android面试题(四大组件篇)[通俗易懂]

    Android面试题(四大组件篇)[通俗易懂]Android面试题(四大组件篇)window、进程、线程篇Android面试题(数据存储、view篇)ActivityQ:说下Activity的生命周期?Q:onStart()和onResume()/onPause()和onStop()的区别?是否位于前台,对用户是否可见的区别Q:ActivityA启动另一个ActivityB会回调哪些方法?如果A…

    2022年5月21日
    40
  • linux目录结构详解_简述linux系统中的目录结构

    linux目录结构详解_简述linux系统中的目录结构前言平常linux系统用的也不少,那么linux下的每个目录都是用来干什么的,小伙伴们有仔细研究过吗?让我们来了解下吧Linux系统目录结构登录系统后,在当前命令窗口下输入命令:[root@

    2022年7月28日
    6

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

关注全栈程序员社区公众号