C#事务处理(Execute Transaction)实例解析
作者:shichen2014 发布时间:2022-04-12 15:32:43
标签:C#,事务处理,Execute,Transaction
本文所述为C#事务处理(Execute Transaction)的一个实例,包含了创建SqlTransaction 对象并用SqlConnection对象的BeginTransaction()方法开始事务,创建保存SQL语句,将SqlCommand对象的CommandText属性设置为第一个INSERT语句,第一个INSERT语句在Customers表中增加一行,提交事务,使INSERT语句增加的两行在数据库中保存起来。
具体的实例代码如下:
using System;
using System.Data;
using System.Data.SqlClient;
namespace ExecuteTransaction
{
/// <summary>
/// ExecuteTransaction 的摘要说明。
/// </summary>
public class ExecuteTransaction
{
public static void Main()
{
SqlConnection mySqlConnection =
new SqlConnection(
"server=localhost;database=Northwind;uid=sa;pwd=sa"
);
mySqlConnection.Open();
// 创建SqlTransaction 对象并用SqlConnection对象的
// BeginTransaction()方法开始事务
SqlTransaction mySqlTransaction =
mySqlConnection.BeginTransaction();
// 创建保存SQL语句
SqlCommand mySqlCommand = mySqlConnection.CreateCommand();
// 将Transaction属性设置为上面所生成的SqlTransaction对象
mySqlCommand.Transaction = mySqlTransaction;
// 将SqlCommand对象的CommandText属性设置为第一个INSERT语句,
// 第一个INSERT语句在Customers表中增加一行
mySqlCommand.CommandText =
"INSERT INTO Customers (" +
" CustomerID, CompanyName" +
") VALUES (" +
" 'Micro', 'Microsoft Corporation'" +
")";
// 执行第一个INSERT语句
Console.WriteLine("Running first INSERT statement");
mySqlCommand.ExecuteNonQuery();
// 将SqlCommand对象的CommandText属性设置为第二个INSERT语句,
// 第二个INSERT语句在Orders表中增加一行
mySqlCommand.CommandText =
"INSERT INTO Orders (" +
" CustomerID" +
") VALUES (" +
" 'Micro'" +
")";
// 执行第二个INSERT语句
Console.WriteLine("Running second INSERT statement");
mySqlCommand.ExecuteNonQuery();
// 提交事务,使INSERT语句增加的两行在数据库中保存起来
Console.WriteLine("Committing transaction");
mySqlTransaction.Commit();
mySqlConnection.Close();
}
}
}
0
投稿
猜你喜欢
- 本文实例为大家分享了java音乐播放器的具体代码,供大家参考,具体内容如下源码:package baidu;import java.awt.
- 故事背景故事发生在几个星期前,自动化平台代码开放给整个测试团队以后,越来越多的同事开始探索平台代码。为了保障自动化测试相关的数据和沉淀能不被
- 1、@RequestMapping@RequestMapping 既可以用在类级别,也可以用在方法级别,当它定义在类级别的时候,标明该控制器
- 单行文本的输入存在严重的缺陷,也不适合实际的运用,本节通过一个无功能的记事本来介绍可以进行多行输入的JTextArea:JTextArea(
- 根据中国的国情,宽带共享遭受dns污染和HTTP拦截非常严重,造成网络请求的不稳定.但是ip/tcp协议一般不受影响。因此可以把域名先解析成
- protected bool IsChineseLetter(string input,int index){int code = 0;in
- Java 执行 JS 脚本工具用途:为了便于系统扩展,提供了 JS 脚本的功能,可以通过在系统中执行脚本来获得更复杂的功能。例如:系统提供了
- 里氏替换原则(LSP)定义:在任何父类出现的地方都可以用它的子类类替换,且不影响功能。解释说明:其实LSP是对开闭原则的一个扩展,在OO思想
- 在阅读本文之前,大家可先参阅《简单理解Spring之IOC和AOP及代码示例》一文,了解下Spring中IOC和AOP的相关内容。下面进入正
- 一、问题在平时的业务模块开发过程中,难免会需要做一些全局的任务、缓存、线程等等的初始化工作,那么如何解决这个问题呢?方法有多种,但具体又要怎
- 一、template下文件不允许直接访问1、查资料得知:springboot项目默认是不允许直接访问template下的文件的,是受保护的。
- 前言一般情况下,当我们使用 SpringDataElasticsearch 去操作 ES 时,索引名
- 最近发现线上监控有个SQL调用量很大,但是方法的调用量不是很大,查看接口实现,发现接口是做了缓存操作的,使用Spring cache缓存注解
- Java集合框架集合概念:对象的容器,定义了对多个对象进行操作的常用方法。可实现数组的功能。集合和数组的区别:数组长度固定,集合长度不固定数
- 1. 介绍这个项目让你可以去读取并解析一个PDF文件,并将其内部结构展示出来. PDF文件的格式标准文档可以从Adobe那儿获取到. 这个项
- 对 Excel 进行读写操作是生产环境下常见的业务,网上搜索的实现方式都是基于POI和JXL第三方框架,但都不是很全面。小编由于这两天刚好需
- 原理 Redis Cluster 一般由多个节点组成,节点数量至少为 6 个才能保证组成完整高可用的集群,其中三个为主
- 场景:当我们正在master分支开发新功能的时候,突然接到一个任务发现线上出现了一个紧急的BUG需要修复,由于没有打新分支做这部分新需求,这
- 1.返回String“长度”方法你如何确定给定String的长度?java提供了一种称为“length()”的方法。将它用于您需要查找Str
- 一、历史版本delegate void StudentDelegate(string name, int age);public class