C#中的事务处理

本文介绍了一个使用C#实现的SQL事务处理示例。示例中通过SqlConnection建立连接,并使用SqlTransaction来管理事务,确保数据操作的完整性和一致性。如果两条插入语句都成功,则提交事务;若任一语句失败,则回滚所有更改。

using System.Data.SqlClient;

using System;

namespace TransactionTest

{

public class Program

{

static void Main(string[] args)

{

string str = "server = .;database=Flight;uid=sa;pwd=1234";

Transaction trans = new Transaction();

trans.RunSqlTransaction(str);

}

}

public class Transaction

{

public Transaction()

{

}

public void RunSqlTransaction(string str)

{

//创建连接

SqlConnection myConnection = new SqlConnection(str);

//打开连接

myConnection.Open();

//创建命令

SqlCommand myCommand = new SqlCommand();

//开始事务

SqlTransaction myTransaction = myConnection.BeginTransaction();

//指定事务和连接对象给myCommand

myCommand.Connection = myConnection;

myCommand.Transaction = myTransaction;

string insertStr1 = "insert into flightInfo values ('1234','济南航空公司',100,'济南','青岛')";

string insertStr2 = "insert into flightInfo values ('12344','上海航空公司',100,'上海','青岛')";

try

{

myCommand.CommandText = insertStr1;

//执行更新

myCommand.ExecuteNonQuery();

myCommand.CommandText = insertStr2;

//执行更新

myCommand.ExecuteNonQuery();

//提交事务

myTransaction.Commit();

//默认情况下,事务不提交则回滚

Console.WriteLine("两条记录插入成功");

}

catch (Exception ex)

{

try

{

//回滚事务

myTransaction.Rollback();

}

catch (Exception ex1)

{

Console.WriteLine(ex1.ToString());

}

Console.WriteLine(ex.ToString());

}

finally

{

myConnection.Close();

}

}

}

}

转自:http://blog.163.com/pengpeng_614/blog/#m=0&t=1&c=fks_087067093083088069093095086095085081086067083087080074

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值