こんにちは、このエラーを解決するのに本当に苦労しています。mysql コネクタで c# を使用しているのを助けてください。次のようなクエリを書きました...
INSERT INTO employee VALUES(...); SELECT last_insert_id();
しかし、何らかの理由でこのエラーが発生し続けます:(
"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 'SELECT scope_identity()' at line 1".
このエラーについて理解できない部分scope_identity()
は、コードのどこにも書いていないことです。
SELECT last_insert_id();
クエリの一部も削除しましたが、奇妙な理由でまだ同じエラーが発生しています。
[編集]これはクエリを完全に生成しますが、最後に追加するのではscope_identity()
なく追加しますlast_insert_id()
public static MySqlCommand insert(string tableName, params object[] values)
{
string sqlQuery = "INSERT INTO " + tableName + " VALUES(";
for (int i = 0; i < values.Count(); i++)
{
if (i == values.Count() - 1 && values[i] is string)
{
sqlQuery = sqlQuery + "'" + values[i] + "'";
}
else if (i == values.Count() - 1 && values[i] is int)
{
sqlQuery = sqlQuery + values[i];
}
else if (values[i] is string || values[i] is DateTime)
{
sqlQuery = sqlQuery + "'" + values[i] + "', ";
}
else if (values[i] is int)
{
sqlQuery = sqlQuery + values[i] + ", ";
}
}
sqlQuery = sqlQuery + "); SELECT LAST_INSERT_ID(); ";
MySqlCommand cmd = new MySqlCommand(sqlQuery);
return cmd;
}