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

作者:shichen2014 时间:2022-04-12 15:32:43 

本文所述为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();
}
}
}
标签:C#,事务处理,Execute,Transaction
0
投稿

猜你喜欢

  • TOMCAT内存溢出及大小调整的实现方法

    2023-02-24 06:55:33
  • java多线程Future和Callable类示例分享

    2021-09-02 09:49:37
  • Java利用openoffice将doc、docx转为pdf实例代码

    2023-08-07 23:44:34
  • Java单例模式的几种常见写法

    2023-10-23 18:27:45
  • Struts2配置文件中使用通配符的方法(三种形式)

    2022-08-21 01:53:40
  • Spring实现一个简单的SpringIOC容器

    2023-02-06 21:03:43
  • Maven 主模块和子模块pom.xml依赖声明

    2022-09-12 21:20:10
  • springboot整合quartz项目使用案例

    2023-02-13 19:57:12
  • mybatis Interceptor对UpdateTime自动处理的实现方法

    2023-10-13 16:02:20
  • VS2019打包WPF安装程序最新教程(图文详解)

    2021-11-18 15:52:08
  • java开发BeanUtils类解决实体对象间赋值

    2022-08-25 06:31:25
  • C# 实现QQ式截图功能实例代码

    2022-04-04 03:48:12
  • mybatisplus中EntityWrapper的常用方法

    2022-11-09 21:52:00
  • Java中线程状态+线程安全问题+synchronized的用法详解

    2023-08-23 08:38:07
  • springboot项目中jackson-序列化-处理 NULL教程

    2022-11-03 14:36:21
  • Spring Bean创建和循环依赖

    2023-10-21 09:17:51
  • MyBatis环境资源配置实现代码详解

    2023-08-05 08:59:02
  • Java设计模式之原型模式详解

    2021-09-06 19:04:49
  • Android切换至SurfaceView时闪屏(黑屏闪一下)以及黑屏移动问题的解决方法

    2023-07-21 10:51:45
  • SpringBoot项目部署到腾讯云的实现步骤

    2023-01-01 16:58:55
  • asp之家 软件编程 m.aspxhome.com