微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

我想在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();
}

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

解决方法

是的,你可以:

>所有表都支持它,(InnoDB表支持它,但MyIsam表不支持)>查询不会影响数据库架构. (ALTER TABLE,DROP TABLE,CREATE TABLE等导致事务提交)

原文地址:https://www.jb51.cc/csharp/243167.html

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。

相关推荐