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


猜你喜欢
- class文件中的特殊字符串首先说明一下, 所谓的特殊字符串出现在class文件中的常量池中,本着循序渐进和减少跨度的原则, 首先把clas
- java 使用HttpURLConnection发送数据简单实例每个 HttpURLConnection 实例都可用于生成单个请求,但是其他
- 1、抽象类 vs 接口 方法类型: 接口只能有抽象方法。抽象类可以有抽象和非抽象方法。从 Java 8 开始,它也可以有默认和静态
- 目录背景Shutdown Hook 介绍关闭钩子被调用场景注意事项实践Shutdown Hook 在 Spring 中的运用背景如果想在 J
- 官方文档 https://developer.android.google.cn/guide/components/activit
- 鉴于各种复杂的网络环境,笔者决定采用不同的编程接口进行下载尝试,以增加程序的可用性。这里仅介绍使用 WebClient 的方法,后续的文章会
- 一个完整的http响应包括响应行,若干响应头和响应数据主体三部分构成。如果我们能用响应对象来进行这三部分的处理,就能向客户发送特定的响应数据
- 这里并未涉及到JSR 181 Annotations 的相关应用,具体的三种方式如下① 通过WSDL地址来创建动态客户端 ② 通过服务端提供
- 前言ParametersInterceptor * 其主要功能是把ActionContext中的请求参数设置到ValueStack中,如果栈
- JPA JpaRepository接口的使用SpringData的所有接口CrudRepository接口 ,其中提供了这些方法提供使用,同
- 什么是banner组件?在许多Android应用上,比如爱奇艺客户端、百度美拍、应用宝等上面,都有一个可以手动滑动的小广告条,这就是bann
- 通过zookeeper实现分布式锁1、创建zookeeper的client首先通过CuratorFrameworkFactory创建一个连接
- 幂等概述幂等性原本是数学上的概念,即使公式:f(x)=f(f(x)) 能够成立的数学性质。用在编程领域,则意为对同一个系统,使用同样的条件,
- 本文实例讲述了C#基于简单工厂模式实现的计算器功能。分享给大家供大家参考,具体如下:子类拥有父类除私有之外的所有属性字段和方法using S
- 首先从表现层介绍,后续后深入原理。1、先简单介绍maven如何生成jar文件方便测试<plugin>
- 前言最近公司有了新的业务,把现有Flutter Android项目应用到TV上去,这不,Asscre的活就来了。本文详细说明Flutter
- 算法如下: 基姆拉尔森计算公式W= (d+2*m+3*(m+1)/5+y+y/4-y/100+y/400) mod 7 在公式中
- android手机有自带的照相机和图库,我们做的项目中有时用到上传图片到服务器,今天做了一个项目用到这个功能,所以把我的代码记录下来和大家分
- 一、首先在Application的onCreate中写:// GeneralAppliction.javapublic static IWX
- 文章目录 简介增量构建自定义inputs和outputs运行时API隐式依赖输入校验自定义缓存方法输入归一化其他使用技巧简介在我们使用的各种