C#执行SQL事务用法实例
作者:shichen2014 时间:2021-11-23 23:32:27
本文实例讲述了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#程序设计有所帮助。
标签:C#,事务
![](/images/zang.png)
![](/images/jiucuo.png)
猜你喜欢
Java中多媒体文件上传及页面回显的操作代码
2021-11-21 09:45:31
![](https://img.aspxhome.com/file/2023/2/66202_0s.png)
java可变参数当做数组处理的方法示例
2023-07-03 13:48:21
java清除html转义字符
2023-03-18 12:20:10
C#4.0新特性之协变与逆变实例分析
2022-02-18 00:17:28
从搭建Struts2 开发环境说起
2023-11-18 08:54:53
![](https://img.aspxhome.com/file/2023/8/59728_0s.png)
小程序与后端Java接 口交互实现HelloWorld入门
2023-11-04 18:55:31
![](https://img.aspxhome.com/file/2023/4/58864_0s.jpg)
Java ynchronized重量级锁的核心原理详解
2022-06-22 17:24:30
![](https://img.aspxhome.com/file/2023/3/89503_0s.png)
使用@TransactionalEventListener监听事务教程
2023-10-05 02:50:44
Idea Jrebel 报错:Cannot reactivate,offline seat in use
2022-01-11 05:08:22
![](https://img.aspxhome.com/file/2023/6/60576_0s.png)
C#/Java连接sqlite与使用技巧
2021-07-10 08:34:05
使用@Validated 和 BindingResult 遇到的坑及解决
2022-12-18 20:36:28
![](https://img.aspxhome.com/file/2023/3/64223_0s.png)
关于Java虚拟机HotSpot
2022-10-28 18:36:01
![](https://img.aspxhome.com/file/2023/4/83144_0s.png)
C#使用iTextSharp添加PDF水印
2021-10-09 08:59:27
RecyclerView实现拖拽排序效果
2022-09-14 01:23:40
![](https://img.aspxhome.com/file/2023/7/93307_0s.gif)
springboot创建线程池的两种方式小结
2022-07-12 09:27:19
SpringMVC响应视图和结果视图详解
2022-03-07 05:08:37
Mybatis配置之typeAlias标签的用法
2023-11-27 20:18:20
![](https://img.aspxhome.com/file/2023/6/60446_0s.jpg)
android实现动态显示隐藏进度条
2023-04-12 23:07:10
Android开发中匿名设备标识符OAID使用及初始化
2023-12-23 04:33:54
![](https://img.aspxhome.com/file/2023/5/88725_0s.png)
C#的File类实现文件操作实例详解
2022-08-03 14:33:44
![](https://img.aspxhome.com/file/2023/0/108650_0s.png)