1

私は値を追加してから実行するC#のストアドプロシージャを持っています:

        string query = "INSERT INTO equipment_parameter (parameter_group_name, version, operation_name, parameter_name, parameter_value, default, owner, date_created) VALUES(@parameter_group_name, @version, @operation_name, @parameter_name, @parameter_value, @default, @owner, @date_created)";    //stored procedure

        //open connection
        if (mySQLA.OpenConnection() == true)
        {
            //create command  
            MySqlCommand cmd = new MySqlCommand();
            cmd.Connection = mySQLA.getConnection();
            cmd.CommandText = query;
            cmd.Prepare();

            //string
            cmd.Parameters.AddWithValue("@parameter_group_name", eParam.ParameterGroupName);
            //int 
            cmd.Parameters.AddWithValue("@version", eParam.Version);
            //string
            cmd.Parameters.AddWithValue("@operation_name", eParam.OperationName);
            //string
            cmd.Parameters.AddWithValue("@parameter_name", eParam.ParameterName);
            //double
            cmd.Parameters.AddWithValue("@parameter_value", eParam.ParameterValue);
            //bool
            cmd.Parameters.AddWithValue("@default", eParam.Default);
            //string
            cmd.Parameters.AddWithValue("@owner", eParam.Owner);
            //DateTime
            cmd.Parameters.AddWithValue("@date_created", eParam.DateCreated);

            //Execute command
            try
            {
                rowsCreated = cmd.ExecuteNonQuery();      //returns number of rows affected
            }
            catch (MySqlException es)
            {
                MessageBox.Show(es.Message, "Equipment Parameter Query Error: ");
            }

このプログラムを実行すると、挿入が試行され、次のような例外がキャッチされます。

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 'default, owner, date_created) VALUES('object1', 1, 'Op1', 'object1', 10.01, 1, '' at line 1

実行しようとしているクエリは次のようになります。

INSERT INTO equipment_parameter (parameter_group_name, version, operation_name, parameter_name, parameter_value, default, owner, date_created) VALUES('object', 1, 'Op1', 'object1', 10.01, false, 'James', '2013-10-30 09:00:54')

'max_allowed_pa​​cket' を 500M に増やし、サーバーを再起動しましたが、効果はありませんでした。私が増やすことができる他のバッファサイズオプションはありますか、それとも私の問題でしょうか?

4

1 に答える 1

0

これで頭を沸騰させた後、それdefaultが予約語であることに気づきました。そのため、バックティックする必要があります。

[...] parameter_value, `default`, owner, date_created) [...]
于 2013-10-30T17:26:37.263 に答える