DBに行を挿入するはずのこの簡単な方法があります。それは例外をスローしています。C#SQL文のMySQL構文エラー
private void AddToLiveQueue(int user_id, bool release = false)
{
string sql = "INSERT INTO live_support_queues (user_id, release, created_at, updated_at)";
sql += " VALUES(?user_id, ?release, ?created_at, ?created_at)";
MySqlConnection conn = new MySqlConnection(connString);
MySqlCommand cmd = conn.CreateCommand();
cmd.CommandText = sql;
cmd.Parameters.AddWithValue("?user_id", user_id);
cmd.Parameters.AddWithValue("?release", release);
cmd.Parameters.AddWithValue("?created_at", DateTime.UtcNow);
try
{
conn.Open();
cmd.ExecuteNonQuery();
conn.Close();
}
catch (Exception ex)
{
SendEmail email = new SendEmail();
email.Send(ex.Message + " " + ex.ToString());
}
}
私はこのエラーを取得しています:
"You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'release, created_at, updated_at) VALUES(70, 0, '2017-09-22 23:00:16.686741', '20' at line 1"
すべてのヘルプは大歓迎です。ありがとう!
あなたはこれをデバッグする場合は、値を引き出し、データベース上に正確ステートメントを実行し、何が起こりますか? – Seano666
idは自動生成され、insert文には含まれません。 user_isは自動生成されず、insert文に含まれます。 –
生成されたSQLを印刷して投稿できますか?これは通常、優れたデバッグチェックです。 –