using System;
using System.Data;
using System.Data.SqlClient;
using System.Transactions;
//REFDLL System.Data;System.Xml;System.Transactions
public class CSharpLab
{
private static void querySqlServer()
{
string cnStr = "Data Source=MyServer;User Id=MyUser;Password=MyPwd;";
cnStr += "Application Name=" + Guid.NewGuid().ToString();
using (SqlConnection cn = new SqlConnection(cnStr))
{
SqlCommand cmd = new SqlCommand("SELECT getdate() as D", cn);
cn.Open();
SqlDataReader dr = cmd.ExecuteReader();
dr.Read();
Console.WriteLine(dr["D"]);
cn.Close();
}
}
public static void Test()
{
using (TransactionScope tx=new TransactionScope())
{
querySqlServer();
querySqlServer();
Console.WriteLine(Transaction.Current.TransactionInformation.LocalIdentifier);
Console.WriteLine(Transaction.Current.TransactionInformation.DistributedIdentifier);
tx.Complete();
}
}
}
新的執行結果如下,如果發現最後一組GUID是00000000-0000-0000-0000-000000000000代表分散式交易根本沒有啟動,千萬不要被結果給騙了!!