当前位置:  开发笔记 > 编程语言 > 正文

你能在一次交易中拥有多个MySqlCommand吗?

如何解决《你能在一次交易中拥有多个MySqlCommand吗?》经验,为你挑选了1个好方法。

我想在2个单独的表上进行插入和更新,但是将它们放在1个事务中).

基本上在伪代码中我想做类似的事情:

MySqlTransaction trans = null;
try
{
    _Connection.Open();
    trans = _Connection.BeginTransaction();
    insertCmd.Transaction = trans;
    updateCmd.Transaction = trans;

    Int32 id = insertCmd.ExecuteNonQuery();
    updateCmd.Parameters.Add(new MySqlParameter("oid", MySqlDbType.Int32).Value = id);
    updateCmd.ExecuteNonQuery();
}
catch(MySqlException)
{
    if(trans != null)
        trans.RollBack();
}
finally
{
    _Connection.Close();
}

这是可能的还是我以错误的方式解决这个问题?



1> Bob Fanger..:

是的,你可以:

所有表都支持它,(InnoDB表支持它,但MyIsam表不支持)

查询不会影响数据库架构.(ALTER TABLE,DROP TABLE,CREATE TABLE等导致事务提交)

推荐阅读
殉情放开那只小兔子
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有