Enterprise Library事务不能回滚

AdmiralMeng 2010-02-07 10:26:58
用企业库写了个事务,但是回滚不了。



protected void Button3_Click(object sender, EventArgs e)
{
bool bResult = true;

Database db = DatabaseFactory.CreateDatabase();

string strSQL = "update menugroup set namef='第一个内容' where id=1"; // 将name写成namef,形成一个错误
DbCommand updateCmd = db.GetSqlStringCommand(strSQL);

strSQL = "update menugroup set name='第二内容' where id=2";
DbCommand delCmd = db.GetSqlStringCommand(strSQL);

using (DbConnection connection = db.CreateConnection())
{
connection.Open();
DbTransaction transaction = connection.BeginTransaction();

try
{
db.ExecuteNonQuery(delCmd);
db.ExecuteNonQuery(updateCmd);

transaction.Commit();
}
catch (Exception ex)
{
transaction.Rollback();
bResult = false;
}

connection.Close();
}

if (bResult)
this.Label1.Text = "事务成功";
else
this.Label1.Text = "事务失败";
}


程序执行后id=1的记录没有改变,但id=2的记录确被修改了,怎么没有回滚?Label1显示"事务失败"
...全文
140 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
lawbc 2010-02-07
  • 打赏
  • 举报
回复
lz没有吧事务与Commond绑定起来呀,怎么提交怎么回滚,当Begin后要吧事务复制给Command对象
mb_1985 2010-02-07
  • 打赏
  • 举报
回复
db.ExecuteNonQuery(transaction,delCmd);
db.ExecuteNonQuery(transaction,updateCmd);
winner2050 2010-02-07
  • 打赏
  • 举报
回复
代码出错才回滚。

你在执行一个错误语法的sql看看。
HolyPlace 2010-02-07
  • 打赏
  • 举报
回复
db.ExecuteNonQuery(delCmd,transaction );
,执行的时候没有结合事务,修改也一样

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧