我正在使用MySQL尝试将新用户添加到我的数据库中。用户得到了一个Id、一个名字、一个姓氏和一个出生日期。但是,当我运行下面的代码时(完成后运行conn.close()
(,数据库告诉我(使用HeidiSQL(,在"表概述"中,表中现在有一个新行,但当我打开"数据"选项卡查看这些行时,什么都没有。它是空的。运行COUNT(*)
也会返回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;
}
}
我没有任何错误。任何日志中都没有显示任何内容,每个人看到的都和我一样。
我做错了什么?
感觉就像是使用了begintransaction
来启动事务。这意味着整个事务的autocommit=false
。
在ExecuteNonQuery
之后做一个transaction.Commit();
,看看它们是否出现。
更多信息点击这里