C#执行SQL事务用法实例
作者:shichen2014 发布时间:2021-11-23 23:32:27
标签:C#,事务
本文实例讲述了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#程序设计有所帮助。


猜你喜欢
- GC的前世与今生虽然本文是以.NET作为目标来讲述GC,但是GC的概念并非才诞生不久。早在1958年,由鼎鼎大名的图林奖得主John McC
- 因为公司业务需求,需要在Windows系统下调用摄像头识别二维码需求,就有了这个功能。我根据网上网友提供的一些资料,自己整合应用到项目中,效
- 本文实例为大家分享了Java使用单链表实现约瑟夫环的具体代码,供大家参考,具体内容如下构建一个单向的环形链表思路1.先创建第一个节点, 让f
- 上篇文章我们已经可以在 Grafana 上看到对应的 SpringBoot 应用信息了,通过这些信息我们可以对 SpringBoot 应用有
- 我们在用maven构建java项目时,最常用的打包命令有mvn package、mvn install、deploy,这三个命令都可完成打j
- maven thin jar 步骤spring-boot-maven-plugin configuration &
- 简介本次五子棋使用的是光标控制移动,通过按空格键(键值32)来落子,实现游戏的。我们额外用到的头文件有:#include<getch.
- 一般情况下每个spring boot工程启动都有固定的端口,但是固定端口不利用服务的动态扩容,如果在一台服务器上需要对同一个服务进行多实例部
- 本文通过实例来介绍如何使用commons-fileupload.jar,Apache的commons-fileupload.jar可方便的实
- 不得不说opencv是个强大的东东,以前做一个项目的一个模块时使用到进行图形处理,这次是想将一个视频的播放放慢,以前在网上看到opencv有
- spring中实例化bean无效在做Struts2和Spring整合时遇到Spring实例化无效的情况,Action中代码如下public
- 前言最近有一项需求,要定时判断任务执行条件是否满足并触发 Spark 任务,平时编写 Spark 任务时都是封装为一个 Jar 包,然后采用
- 1. 问题描述springboot的面世,成为Java开发者的一大福音,大大提升了开发的效率,其实springboot只是在maven的基础
- 无论游戏,应用,网站,都少不了评分控件。在Android SDK 中提供了 RatingBar控件来实现相应的工作。<RatingBa
- WebSocket 是 HTML5 开始提供的一种在单个 TCP 连接上进行全双工通讯的协议。WebSocket 使得客户端和服务器之间的数
- 托管资源指的是.NET可以自动进行回收的资源,主要是指托管堆上分配的内存资源。托管资源的回收工作是不需要人工干预的,有.NET运行库在合适调
- 本文展示了C#实现获取一年中是第几个星期的方法,对初学者学习C#时间操作有一定的借鉴价值,具体实现代码如下:主要功能代码如下:/// <
- 本文实例为大家分享了java实现饮料自助售货机的具体代码,供大家参考,具体内容如下①用户类import java.util.Scanner;
- 最近被.net winform中的控件布局搞困惑了,由于控件都是使用Dock方式的,操作起来也是比较方便,如果最大化,窗口大小调整等,都可以
- 环境:SpringBoot 2.0.4.RELEASE需求:很多Controller方法,刚进来要先获取当前登录用户的信息,以便做后续的用户