C#执行SQL事务用法实例

本文实例讲述了C#执行SQL事务用法。分享给大家供大家参考。具体分析如下:

1.通过存储过程。

2.通过C#中提供的Transaction。这里就来演示一下通过C#中提供的Transaction 执行SQL事务。

WebForm3.aspx.cs页面

代码如下:

using System; 
using System.Collections.Generic; 
using System.Linq; 
using System.Web; 
using System.Web.UI; 
using System.Web.UI.WebControls; 
using System.Configuration; 
using System.Data.SqlClient; 
 
namespace 用户激活 

    public partial class WebForm3 : System.Web.UI.Page 
    { 
        protected void Page_Load(object sender, EventArgs e) 
        { 
 
        } 
 
        protected void Button1_Click(object sender, EventArgs e) 
        { 
            string connStr=ConfigurationManager.ConnectionStrings["ConnStr"].ConnectionString; 
            using(SqlConnection conn=new SqlConnection(connStr)) 
            { 
                conn.Open(); 
                using (SqlTransaction tran = conn.BeginTransaction()) //开始数据库事务。即创建一个事务对象tran 
                { 
                    using (SqlCommand cmd =new SqlCommand()) 
                    { 
                        cmd.Connection = conn; 
                        cmd.Transaction = tran; //获取或设置将要其执行的事务 
                        try 
                        { 
                            //在try{}块里执行sqlconnection命令 
                            cmd.CommandText = "update bb set Moneys=Moneys-" + Money.Text + " where ID=" + ToID.Text; 
                            cmd.ExecuteNonQuery(); 
                            cmd.CommandText = "update bb set Moneys=Moneys+" + Money.Text + " where ID=" + FromID.Text; 
                            cmd.ExecuteNonQuery(); 
 
                            tran.Commit(); //如果两条sql命令都执行成功,则执行commit这个方法来执行这些操作。 
 
                            Msg.Text = "转账成功"; 
                        } 
                        catch 
                        { 
                            Msg.Text = "转账失败"; 
                            tran.Rollback();//如果执行不成功,发送异常,则执行rollback方法,回滚到事务操作开始之前。 
                        } 
                    } 
                } 
            } 
        } 
    } 
}

WebForm3.aspx页面

代码如下:

<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="WebForm3.aspx.cs" Inherits="用户激活.WebForm3" %> 
<html xmlns="http://www.w3.org/1999/xhtml"> 
<head id="Head1" runat="server"> 
    <title></title> 
</head> 
<body> 
    <form id="form1" runat="server"> 
    转账账户:<asp:TextBox ID="ToID" runat="server"></asp:TextBox></br> 
    接收账户:<asp:TextBox ID="FromID" runat="server"></asp:TextBox></br> 
    转账金额:<asp:TextBox ID="Money" runat="server"></asp:TextBox></br> 
    转账是否成功:<asp:Label ID="Msg" runat="server" Text=""></asp:Label></br> 
 
    <asp:Button ID="Button1" runat="server" Text="提交转账" onclick="Button1_Click" /> 
    </form> 
</body> 
</html>

运行结果如下图所示:

希望本文所述对大家的C#程序设计有所帮助。

(0)

相关推荐

  • c#实现sqlserver事务处理示例

    复制代码 代码如下: private static void ExecuteSqlTransaction(string connectionString)    {        using (SqlConnection connection = new SqlConnection(connectionString))        {            connection.Open();            SqlCommand command = connection.CreateC

  • 如何在数据库中用好Transaction?

    如何在数据库中用好Transaction?在ASP的实际操作中,总会发生这样的情况,如在银行,从我的帐户往费文华的帐户划款,我的帐户显示已经划出,但因银行的系统出现故障,导致费文华帐户的数据库更改失败,这应该怎样处理呢?我帐户的金额应该没有损失吧? 你的利益当然没有损失,已经更改的帐户数据库资料会自动恢复.这里用到的就是互动功能(TRANSACTION),它是由IIS与MTS(Mircrosoft Transaction Server)共同完成的.它的功能就是:当ASP程序中所有的数据库的更改都

  • Asp.net 在三层架构中事务的使用实例代码

    接触3层也有一段时间了,了解水平一般,前段时间在想在三层中怎么使用事务呢,放在哪呢?Sqlherper ? DAL? BLL?.然后我就疯狂的百度,好几次都是未果(因为做的都是小项目,不用事务也关系不大),今天我再次查时,好好的看了csdn上的以讨论,http://topic.csdn.net/u/20091101/19/f21697d7-8f0c-4eb3-8e59-d0fe2f0b04b0.html,结合前辈和高手们的意见,自己改了一个出来.我的想法是将事务逻辑写在业务逻辑层,数据库的处理还

  • 在ASP.NET 2.0中操作数据之六十一:在事务里对数据库修改进行封装

    导言: 正如我们在第16章<概述插入.更新和删除数据>里探讨的那样,GridView控件内建的功能支持对每行数据的编辑和删除功能,你只需要稍稍动一下鼠标就可以创建丰富的数据修改界面而不用写一行代码.但是,在某些情况下,这还不够,我们需要让用户能够成批地处理数据. 比如,很多基于web(web-based)的电子邮件客户端,将所有邮件出来,每条邮件除了包含邮件信息(主题.发送者等)外,还包含一个checkbox控件.这些界面允许用户同时删除多个邮件,用户只需要选中邮件,再点"删除所选邮

  • asp.net 使用事务

    ASP.NET操作事务非常的简单,代码如下: 代码 复制代码 代码如下: using System; using System.Collections.Generic; using System.Linq; using System.Web; using System.Web.UI; using System.Web.UI.WebControls; using System.Data; using System.Data.SqlClient; using System.Transactions;

  • C#中TransactionScope的使用小结

    TransactionScope是.Net Framework 2.0滞后,新增了一个名称空间.它的用途是为数据库访问提供了一个"轻量级"[区别于:SqlTransaction]的事务.使用之前必须添加对 System.Transactions.dll 的引用. 下列代码就是一个正在创建的事务,这个事务自身还封装了多个数据库查询.只要任意一个 SqlCommand 对象引发异常,程序流控制就会跳出 TransactionScope 的 using 语句块,随后,TransactionS

  • asp.net 执行事务代码

    //数据库执行区, SqlConnection _sqlConn = null; SqlTransaction _SqlTrans = null; try { //数据库操作类 _sqlConn = System.mySQLConnection.SqlConnections.GetSQLConnection();//见下面的类 _sqlConn.Open(); // sql事务对象 _SqlTrans = _sqlConn.BeginTransaction(); //基本信息执行SQL语句情况

  • c# 执行事务函数代码

    复制代码 代码如下: /// <summary> /// 执行多条sql语句,实现事务 /// </summary> /// <param name="arraySql">多条sql语句</param> public int ExecutrSqlTran(System.Collections.ArrayList arraySql) { int itemnum; DbOpen(); SqlCommand cm = new SqlComman

  • C#事务处理(Execute Transaction)实例解析

    本文所述为C#事务处理(Execute Transaction)的一个实例,包含了创建SqlTransaction 对象并用SqlConnection对象的BeginTransaction()方法开始事务,创建保存SQL语句,将SqlCommand对象的CommandText属性设置为第一个INSERT语句,第一个INSERT语句在Customers表中增加一行,提交事务,使INSERT语句增加的两行在数据库中保存起来. 具体的实例代码如下: using System; using System

  • C#执行SQL事务用法实例

    本文实例讲述了C#执行SQL事务用法.分享给大家供大家参考.具体分析如下: 1.通过存储过程. 2.通过C#中提供的Transaction.这里就来演示一下通过C#中提供的Transaction 执行SQL事务. WebForm3.aspx.cs页面 复制代码 代码如下: using System;  using System.Collections.Generic;  using System.Linq;  using System.Web;  using System.Web.UI;  us

  • MyBatis动态SQL标签用法实例详解

    1.动态SQL片段 通过SQL片段达到代码复用 <!-- 动态条件分页查询 --> <sql id="sql_count"> select count(*) </sql> <sql id="sql_select"> select * </sql> <sql id="sql_where"> from icp <dynamic prepend="where&quo

  • MyBatis执行Sql的流程实例解析

    这篇文章主要介绍了MyBatis执行Sql的流程实例解析,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下 本博客着重介绍MyBatis执行Sql的流程,关于在执行过程中缓存.动态SQl生成等细节不在本博客中体现,相应内容后面再单独写博客分析吧. 还是以之前的查询作为列子: public class UserDaoTest { private SqlSessionFactory sqlSessionFactory; @Before public v

  • shell在指定目录下批量执行sql脚本的实例

    如下所示: #!/bin/bash #execute all script in specified directory MYDATE=`date +%F'-'%T'-'%w` MYSQL_PATH=/tmp/scripts #指定的目录 LOG_FILE=/tmp/scripts/exec_${MYDATE}.log confirm= db_name= db_pass= for file in ${MYSQL_PATH}/* do if [ -f "$file" ] ; then p

  • C#中的事务用法实例分析

    本文实例讲述了C#中的事务用法.分享给大家供大家参考.具体如下: 直接用SQL语句创建事务, 当然不是什么稀奇事了, 好是好, 只是麻烦. 看看C#中怎么做吧: SqlTransaction Tran = DBConn.BeginTransaction(); cmdTmp.Transaction = Tran; try { cmdTmp.CommandText = "DELETE FROM xxx"; cmdTmp.ExecuteNonQuery(); cmdTmp.CommandTe

  • Java使用Statement接口执行SQL语句操作实例分析

    本文实例讲述了Java使用Statement接口执行SQL语句操作的方法.分享给大家供大家参考,具体如下: Statement执行SQL语句: 1. 对数据库的曾删改操作时,使用stmt.executeUpdate(sql)  执行给定 SQL 语句,分别为 insert .update.delete. 2. 对数据库做查询时,直接使用 stmt.executeQuery(sql),返回结果可以为一个resultSet结果集. 首先做一些准备工作: ①对要进行操作的数据库表进行封装,比如说我的数

  • SQL事务用法begin tran,commit tran和rollback tran的用法

    具体用法如下: 复制代码 代码如下: -- ============================================= -- Author: cynimoon -- Create date: 2009-10-09 -- Description: 示例存储过程 -- ============================================= -- EXEC TEST_PROC '文综','包括历史,地理,政治','政治','文综的一门' CREATE PROCEDU

  • SQL cursor用法实例

    复制代码 代码如下: DECLARE @OldId varchar(50)   DECLARE @CustomerID varchar(50)   DECLARE My_Cursor CURSOR --定义游标   FOR (select CustomerID,oldid from Customer where Area='bj') --查出需要的集合放到游标中   OPEN My_Cursor; --打开游标   FETCH NEXT FROM My_Cursor INTO @Customer

  • Sql Server中Substring函数的用法实例解析

    SQL 中的 substring 函数是用来抓出一个栏位资料中的其中一部分.这个函数的名称在不同的资料库中不完全一样: MySQL: SUBSTR( ), SUBSTRING( ) Oracle: SUBSTR( ) SQL Server: SUBSTRING( ) SQL 中的 substring 函数是用来截取一个栏位资料中的其中一部分. 例如,我们需要将字符串'abdcsef'中的'abd'给提取出来,则可用substring 来实现: select substring('abdcsef'

  • 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

随机推荐