SqlTransaction事务使用示例

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);
        }
    }
}

时间: 2024-09-23 02:15:01

SqlTransaction事务使用示例的相关文章

SqlTransaction 数据库编程事务使用示例

在提交或回滚 SqlTransaction 时,应始终使用 Try/Catch 进行异常处理.如果连接终止或事务已在服务器上回滚,则 Commit 和 Rollback 都会生成 InvalidOperationException.   下面的示例创建一个 SqlConnection 和一个 SqlTransaction.此示例还演示如何使用 BeginTransaction.Commit 和 Rollback 等方法.出现任何错误时事务都会回滚.Try/Catch 错误处理用于处理尝试提交或回

c#中SqlTransaction——事务详解_C#教程

事务处理基本原理      事务是将一系列操作作为一个单元执行,要么成功,要么失败,回滚到最初状态.在事务处理术语中,事务要么提交,要么中止.若要提交事务,所有参与者都必须保证对数据的任何更改是永久的.不论系统崩溃或是发生其他无法预料的事件,更改都须是持久的.只要有一个参与者无法做出此保证,整个事务就会失败.事务范围内的所有数据更改将回滚到特定设置点.   事务将多个操作紧密联系到一起,这样就能保证有联系的两种操作的一致性.以及数据的完整性.举个简单例子:公司的员工信息管理系统,现在要录入数据,

Spring事务讲解示例(转)

  Spring 事务Transaction1.事务的属性1.1 事务隔离IsolationLevel1.2 事务传播PropagationBehavior1.3 事务超时Timeout1.4 只读状态ReadOnly隔离级别.超时.只读状态都依赖于底层的数据库实现,Spring仅仅起了代理作用(MySQL的MyISAM引擎是无事务引擎,那么Spring是不可能带有事务管理功能的).事务传播行为是Spring框架所特有的.2 使用Spring事务只需要了解PlatformTransactionM

SQL Server触发器和事务用法示例

本文实例讲述了SQL Server触发器和事务用法.分享给大家供大家参考,具体如下: 新增和删除触发器 alter trigger tri_TC on t_c for INSERT,delete as begin set XACT_ABORT ON declare @INSERTCOUNT int; declare @DELETECOUNT int; declare @UPDATECOUNT int; set @INSERTCOUNT = (select COUNT(*) from insert

SQL Server触发器和事务用法示例_MsSql

本文实例讲述了SQL Server触发器和事务用法.分享给大家供大家参考,具体如下: 新增和删除触发器 alter trigger tri_TC on t_c for INSERT,delete as begin set XACT_ABORT ON declare @INSERTCOUNT int; declare @DELETECOUNT int; declare @UPDATECOUNT int; set @INSERTCOUNT = (select COUNT(*) from insert

spring实现jdbctemplate添加事务支持示例_JSP编程

复制代码 代码如下: public interface JdbcTemplate extends JdbcOperations {public abstract void beginTranstaion(); public abstract void commit(); public abstract void rollback();} 复制代码 代码如下: public class JdbcTemplateImpl extends org.springframework.jdbc.core.J

在OLTP的环境下使用大事务出现的问题

在应用环境中,常常需要保证几张表相关数据的一致性,为了应对这种需求,开发工程师常常会使用事务,把一些insert,update等语句绑在一起,形成一个事务(Transaction),比如如下的伪代码示例(事务1): begin transaction insert into messgae(id,col1,col2...) values(#id,#col1,#col2...); update thread set post_count=nvl(post_count,0) + 1 where id

WCF示例(14)

介绍 WCF(Windows Communication Foundation) - 事务(Transaction): ·对契约方法使用TransactionFlowAttribute声明(设置TransactionFlowOption参数),以指定服务操作的事务流策略 ·对服务方法是用OperationBehaviorAttribute声明(设置TransactionScopeRequired参数),以指定方法是否在事务范围(TransactionScope)内执行 ·配置host和clien

事务使用中如何避免误用分布式事务(System.Transactions.TransactionScope)

1:本地事务DbTransaction和分布式事务TransactionScope的区别: 1.1:System.Data.Common.DbTransaction: 本地事务:这个没什么好说了,就是单个事务,每种数据库都有自己的实现,事务的深度内涵可以搜索查看相关的文章,不是本文介绍的重点. 1.2:System.Transactions.TransactionScope: 分布式事务,需要添加引用System.Transactions,同时启用MSDTC分布式事务服务:通常使用方式为:  u