0

こんにちは、このエラーを解決するのに本当に苦労しています。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;
    }
4

1 に答える 1

0

string insert = "INSERT INTO employee VALUES(...)";

string select="SELECT last_insert_id()";

于 2012-05-07T16:05:58.570 に答える