我希望在一个.NET 2.0项目中,使用一系列的sp call(SQL Server 2005)使一些业务逻辑变得事务性。
using(TransactionScope...)
很不幸,我从另一个项目继承了DAL,我不想在那里做太多更改...问题是每个调用存储过程的方法都会打开一个新连接。所以,我的问题是:有没有一种方法可以检索当前事务使用的连接,即从Transaction.Current?谢谢。
更新:请告诉我这个控制台应用程序有什么问题(vs2005,.net 2.0,Sql server 2005)
using System;
using System.Collections.Generic;
using System.Text;
using System.Data.SqlClient;
using System.Data;
using System.Transactions;
namespace ConsoleApplication1
{
public class Program
{
static void Main(string[] args)
{
using (TransactionScope ts = new TransactionScope(TransactionScopeOption.Required))
{
Console.WriteLine("1");
test();
Console.WriteLine("2");
test();
}
Console.WriteLine("END");
}
public static void test()
{
string connectionString = @"Persist Security Info=True;User ID=usr123;Password=123;Initial Catalog=db123;Data Source=myserver\myinstance;Connect Timeout=180;";
using (SqlConnection conn = new SqlConnection(connectionString))
{
conn.Open();
}
}
}
}