如果mysql插入查询失败,如何检查和删除然后删除c#中插入的数据

时间:2014-09-30 20:16:07

标签: c# mysql

我有一个用户点击保存按钮的项目:

1)INSERT查询将数据插入表1中的MySQL DB。 2)更新表2中的查询更新1字段值。

如果步骤1失败,则步骤2需要停止,步骤1需要反向。这意味着需要一起完成步骤1和步骤2以完成交易。否则交易需要失败。

任何帮助?

2 个答案:

答案 0 :(得分:0)

您可以执行类似

的操作
MySqlConnection con = new MySqlConnection( ... );

con.Open();

MySqlTransaction tx = con.BeginTransaction();

MySqlCommand cmd = new MySqlCommand( "", con );

cmd.Transaction = tx;

try
{

   cmd.CommandText = "INSERT query insert Data into MySQL DB in Table 1";

   cmd.ExecuteNonQuery();

   cmd.CommandText = "Update Query update 1 fields value in Table 2";

   cmd.ExecuteNonQuery();

   tx.Commit();

}
catch( MySqlException e )
{

  // TODO: report error?

  tx.Rollback();

}

然后,如果第一次插入查询失败,则从那里捕获错误和回滚(中止事务) 或者,如果第二次查询失败,则再次回滚(撤消第一次查询的更改)。 否则承诺一切。

请记住在桌面上使用Innodb引擎(否则交易不能在MyISAM中运行)。

答案 1 :(得分:0)

您实际上是在给出交易的确切定义:

在需要执行两个或多个SQL命令的情况下使用转换,如果其中任何一个语句失败,则其他任何语句都无法更改数据库。

有关详细信息,请参阅以下链接:http://www.codeproject.com/Articles/10223/Using-Transactions-in-ADO-NET

希望这有助于你