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

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

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

【正版授权,激活自己账号】: Jetbrains全家桶Ide使用,1年售后保障,每天仅需1毛

【官方授权 正版激活】: 官方授权 正版激活 支持Jetbrains家族下所有IDE 使用个人JB账号...

(0)


相关推荐

  • 数据库mysql的执行顺序(sql语句大全实例教程)

    今天遇到一个问题就是mysql中insertinto和update以及delete语句中能使用as别名吗?目前还在查看,但是在查阅资料时发现了一些有益的知识,给大家分享一下,就是关于sql以及MySQL语句执行顺序:sql和mysql执行顺序,发现内部机制是一样的。最大区别是在别名的引用上。一、sql执行顺序(1)from(3)join(2)on(4)where…

  • 2k21本世代和次世代生涯一样吗_nba2k21次世代价格

    2k21本世代和次世代生涯一样吗_nba2k21次世代价格原题链接对于在中国大学MOOC(http://www.icourse163.org/ )学习“数据结构”课程的学生,想要获得一张合格证书,总评成绩必须达到 60 分及以上,并且有另加福利:总评分在 [G, 100] 区间内者,可以得到 50 元 PAT 代金券;在 [60, G) 区间内者,可以得到 20 元PAT代金券。全国考点通用,一年有效。同时任课老师还会把总评成绩前 K 名的学生列入课程“名人堂”。本题就请你编写程序,帮助老师列出名人堂的学生,并统计一共发出了面值多少元的 PAT 代金券。输入格

  • js如何替换指定的字符串_如果字符串内容替换

    js如何替换指定的字符串_如果字符串内容替换今天在写JavaScript替换字符串时,使用str.replace(“a”,”b”)方法替换发现只会替换第一个成功匹配的字符a而使用如果想要替换全部指定字符时,需要使用str.replace(/\a/g,”b”),这里g为全局标志,可以将全部的a替换成b…

    2022年10月22日
  • Delphi语言_DELPHI

    Delphi语言_DELPHI总结一下SQL语句中引号(‘)、quotedstr()、(”)、format()在SQL语句中的用法以及SQL语句中日期格式的表示(#)、(”)在Delphi中进行字符变量连接相加时单引号用(”’),又引号用(””)表示首先定义变量var AnInt:integer=123;//为了方便在此都给它们赋初值。虽然可能在引赋初值在某些情况下不对AnIntStr:str

    2022年10月18日
  • 银行的大数据应用

    银行的大数据应用这是系列文章之一。本系列梳理了国内外银行信息化历程,包含区块链、云计算、物联网、移动端、人工智能各方面的应用情况。一、大数据发展简介“大数据”一词据称最早于1980年出现在美国著名未来学家阿尔文·托夫勒所著的《第三次浪潮》一书中,他在书中将“大数据”称为“第三次浪潮的华彩乐章”。在笔者看来,大数据的应用效果主要取决于两部分,一是大数据的技术部分,二是对数据质量和价值有重要影响的数据治理…

  • Servlet.service() for servlet [dispatcherServlet] in context with path [] th

    Servlet.service() for servlet [dispatcherServlet] in context with path [] th控制台报错信息Servlet.service()forservlet[dispatcherServlet]incontextwithpath[]threwexception[Requestprocessingfailed;nestedexceptionisjava.lang.NullPointerException]withrootcausee1.controller层没有加@ResponseBody2.Service层实现类未添加注解@Autowired记

发表回复

您的电子邮箱地址不会被公开。

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