我正在尝试跨多个系统进行数据库事务(插入记录)。所以,我决定在 .net 中使用 System.Transaction 命名空间。我在两个系统上都配置了 MSDTC(但我不知道我是否配置正确)。我的事务有两个插入查询,一个将在本地系统执行。另一个,将在本地网络中的某个其他系统上执行。第一个插入查询成功,但第二个引发错误,例如: Message = "事务已被隐式或显式提交或中止。"
这是我的代码
using (TransactionScope txSc = new TransactionScope())
{
//vrm = new VolatileRM();
//vrm.SetMemberValue(3);
try
{
using (SqlConnection cn = new SqlConnection(connStr1))
{
SqlCommand cmd = cn.CreateCommand();
cmd.CommandText = "Insert into empdetail Values ('YYY')";
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
}
using (SqlConnection cn = new SqlConnection(connStr))
{
SqlCommand cmd = cn.CreateCommand();
cmd.CommandText = "Insert into stu Values ('23','senthil')";
cn.Open();
cmd.ExecuteNonQuery();
cn.Close();
}
txSc.Complete();
}
catch (Exception e)
{
txSc.Dispose();
}
}