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)
全栈程序员-站长的头像全栈程序员-站长


相关推荐

  • SQL聚合函数「建议收藏」

    SQL聚合函数「建议收藏」一、知识点聚合函数对组执行计算并返回每个组唯一的值。GROUPBY子句通常与聚合函数一起用于统计数据。GROUPBY子句将行排列成组,聚合函数返回每个组的统计量。常用的聚合函数有:COUNT(),SUM(),AVG(),MIN(),MAX()。COUNT(),其作用主要是返回每个组的行数,也会返回有NULL值的列,可用于数字和字符列。SUM(),主要用于返回表达式中所有的总和,忽略NULL值,仅用于数字列。AVG(),返回表达式所有的平均值,仅用于数字列并且自动忽略NULL值。MIN(),返

    2022年6月21日
    23
  • vim 命令

    vim 命令

    2021年4月23日
    223
  • Django学习笔记一初识Django

    Django学习笔记一初识DjangoDjango学习笔记,入门Django框架

    2022年9月1日
    7
  • iPad2成功越狱

    iPad2成功越狱昨天iPad2的越狱终于出啦,作为小白的我,在网上各种教程的帮助下,成功越狱!其实过程还是很简单的~ 步骤一:备份SHSH(据说如果你的设备无需降级,可以忽略备份SHSH这一步,不会对越狱有影响)参考:http://bbs.weiphone.com/read-htm-tid-20

    2022年5月30日
    43
  • 原生js动态添加元素

    原生js动态添加元素<!DOCTYPEhtml><htmllang=”en”><head><metacharset=”UTF-8″><metaname=”viewport”content=”width=device-width,initial-scale=1.0″><title>原生js动态添加元素</title><style>.phone{.

    2022年6月22日
    27
  • 怎么重新启动协议服务器,ssl协议怎么开启

    怎么重新启动协议服务器,ssl协议怎么开启1.首先打开浏览器,找到工具→Internet选项2.找到高级选项卡,下面的使用SSL3.0勾选之后,点击保存即可。3.重新打开网站检查。对于chrome浏览器,SSL和TLS都协议是默认开启的,可以按下F12,然后在开发者工具中查看当前使用的协议版本。若是服务器配置ssl协议证书,首先确认Apache服务器已经安装有加密模块,可以是OpenSSL,或是OpenSSL+ModSSL。通过O…

    2022年5月18日
    64

发表回复

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

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