TransactionScope不能正常回滚事务问题
沙徐 2011-08-28 03:54:28 代码如下:
/// <summary>
/// 同一个连接的TransactionScope 异常不能正常回滚
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void button1_Click(object sender, EventArgs e)
{
string ConnectionString = "Server=10.72.70.101;Initial Catalog=TEST;User ID=sa;Password=test";
SqlConnection conn = new SqlConnection(ConnectionString);
conn.Open();
try
{
using (TransactionScope scope = new TransactionScope(TransactionScopeOption.Required ))
{
SqlCommand cmd = new SqlCommand();
cmd.CommandText = "INSERT INTO TEST(EMP_NO,SALARY) VALUES('0811010',5555)";
cmd.Connection = conn;
cmd.ExecuteNonQuery();
cmd = new SqlCommand();
cmd.CommandText = "INSERT INTO TEST(EMP_NO,SALARY) VALUES('0811010',5555)";
cmd.Connection = conn;
cmd.ExecuteNonQuery();
scope.Complete();
}
}
catch (Exception ex)
{
MessageBox.Show(ex.Message);
}
}
如果把:conn.Open()放到 using语句块内的话,就可以正常回滚,
实现是搞不明白了,还请高人赐教!