首页 > 解决方案 > 准备好的 MySQL 语句插入失败,没有错误

问题描述

我正在使用 MySQL 尝试将新用户添加到我的数据库中。用户有一个 ID、一个名字、一个姓氏和一个出生日期。但是当我运行下面的代码(并conn.close()在我完成后运行)时,数据库告诉我(使用 HeidiSQL)在表概述中现在表中有一个新行但是当我打开数据选项卡查看行时, 空无一物。它是空的。运行 aCOUNT(*)也会返回 0。

using (MySqlTransaction transaction = conn.BeginTransaction())
{
    using (MySqlCommand cmd = conn.CreateCommand())
    {
        cmd.CommandText = "INSERT INTO USERS(NAME_FIRST,NAME_LAST,DATE_OF_BIRTH) VALUES(@nameFirst,@nameLast,@dateOfBirth)";
        cmd.Transaction = transaction;
        cmd.Parameters.AddWithValue("@nameFirst", user.NameFirst);
        cmd.Parameters.AddWithValue("@nameLast", user.NameLast);
        cmd.Parameters.AddWithValue("@dateOfBirth", user.DateOfBirth);
        cmd.Prepare();
        cmd.ExecuteNonQuery();
        lastInsertId = (uint)cmd.LastInsertedId;
    }
}

我没有错误。任何日志中都没有显示任何内容,每个人都和我一样。

我究竟做错了什么?

标签: c#mysql

解决方案


感觉就像是使用begintransactionwhich 开始交易。这意味着autocommit=false整个交易。

之后ExecuteNonQuery做一个transaction.Commit();,看看他们是否出现。

更多信息在这里


推荐阅读