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