C#/ MySQL-この例外メッセージを修正する方法:「SQL構文にエラーがあります」?

ボブ

テーブル「clothes」のMySQLデータベースに新しい衣料品を挿入する次のメソッドがあります。

次の例外メッセージが表示されます。

エラー:Actor.AddCloth()-SQL構文にエラーがあります。'CONDITION、WET_CONDITION、REPUTATION_BONUS、ICON_ID)VALUES(12、' Tunic '、11、2、'の1行目で使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

私がこれまでにしたこと:

  1. スペルをチェックしてください-すべて正しい

  2. パラメータを確認してください-すべて問題ないようです

  3. 順序を確認してください-すべて正しい

  4. チェックされた構文と間隔-正しいようです

  5. マニュアルを確認しました-私には何も飛び出しません

したがって、私はここで機能していないものに迷っています。私は他のメソッドにも同じ構文を使用していますが、それらは正常に機能しています。

更新されたコード:

/// <summary>
/// Inserts an actor's cloth state into the database.
/// </summary> 
/// <param name="clothItem">The cloth object to insert.</param>
/// <param name="actorID">The actor's ID.</param>
/// <returns>Returns true on success, else false.</returns>
public bool AddCloth(Cloth clothItem, long actorID)
{
    MySqlConnection conn;
    MySqlCommand cmd;
    StringBuilder query = new StringBuilder();
    int rows_affected = -1;

    try
    {
        // Open a connection
        conn = new MySqlConnection();
        conn.ConnectionString = GlobalConstants.CONNECTION_STRING;
        conn.Open();

        // Query
        query.Clear();
        query.Append("INSERT INTO clothes (ACTOR_ID, CLOTH_NAME, TYPE_ID, BODY_SLOT_ID, MATERIAL_ID, COLOR_ID, ");
        query.Append("SMELL_ID, ENCHANTMENT_ID, WEIGHT, CLOTH_VALUE, CONDITION, WET_CONDITION, REPUTATION_BONUS, ICON_ID) ");
        query.Append("VALUES (@actor_id, @cloth_name, @type_id, @body_slot_id, @material_id, @color_id, ");
        query.Append("@smell_id, @enchantment_id, @weight, @cloth_value, @condition, @wet_condition, @reputation_bonus, @icon_id); ");

        cmd = new MySqlCommand(query.ToString(), conn);

        // Parameters
        cmd.Parameters.AddWithValue("actor_id", actorID);
        cmd.Parameters.AddWithValue("cloth_name", clothItem.Name);
        cmd.Parameters.AddWithValue("type_id", Convert.ToInt32(clothItem.Type)); 
        cmd.Parameters.AddWithValue("body_slot_id", Convert.ToInt32(clothItem.BodySlot));
        cmd.Parameters.AddWithValue("material_id", Convert.ToInt32(clothItem.Material));
        cmd.Parameters.AddWithValue("color_id", Convert.ToInt32(clothItem.Color));
        cmd.Parameters.AddWithValue("smell_id", Convert.ToInt32(clothItem.Smell));
        cmd.Parameters.AddWithValue("enchantment_id", clothItem.EnchantmentID);
        cmd.Parameters.AddWithValue("weight", clothItem.Weight);
        cmd.Parameters.AddWithValue("cloth_value", clothItem.Value);
        cmd.Parameters.AddWithValue("condition", clothItem.Condition);
        cmd.Parameters.AddWithValue("wet_condition", clothItem.WetCondition);
        cmd.Parameters.AddWithValue("reputation_bonus", clothItem.ReputationBonus);
        cmd.Parameters.AddWithValue("icon_id", clothItem.IconID); 

        // Execute query
        rows_affected = cmd.ExecuteNonQuery();

        // Store the last inserted id as the cloth's id
        clothItem.ID = cmd.LastInsertedId;

        // Close connection
        conn.Close();
    }
    catch (MySqlException e)
    {
        Console.WriteLine("Error: Actor.AddCloth() - " + e.Message);
        return false;
    }
    catch (Exception e)
    {
        Console.WriteLine("Error: Actor.AddCloth() - " + e.Message);
        return false;
    }

    return true;
}
vcsjones

列名の1つはVALUE、MySQLが構文の問題があることを示す直前にあります。これは、 MySQLの予約語です。適切にエスケープするには、バックティックで囲む必要があります。

query.Append("SMELL_ID, ENCHANTMENT_ID, WEIGHT, `VALUE`, CONDITION, WET_CONDITION...

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

SQL構文にエラーがあります。MySQLサーバーのバージョンに対応するマニュアルをC#で確認します

分類Dev

#1064を削除する方法-mysqlのSQL構文エラーにエラーがあります

分類Dev

スレッド「main」の例外com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:SQL構文にエラーがあります

分類Dev

mysqlエラーSQL構文にエラーがあります

分類Dev

MySQLパラメータはC#で定義する必要があります

分類Dev

MySQL構文エラー| SQL構文にエラーがあります。

分類Dev

HibernateとMYSQL:SQL構文にエラーがありますか?

分類Dev

HibernateとMYSQL:SQL構文にエラーがありますか?

分類Dev

mysql ERROR 1064(42000):SQL構文にエラーがあります。

分類Dev

MySQL#1064-SQL構文にエラーがあります

分類Dev

MYSQL:SQL構文にエラーがあります

分類Dev

MySQL構文エラーSQLエラー[1064] [42000]:SQL構文にエラーがあります

分類Dev

クエリエラー-SQL構文にエラーがあります。使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください

分類Dev

MySQLによると:ドキュメント(#1064)-SQL構文にエラーがあります。

分類Dev

MySQLエラー1064:SQL構文にエラーがあります

分類Dev

#1064を表示するmysqlクエリ-SQL構文にエラーがあります。

分類Dev

エラーコード:1064。SQL構文にエラーがあります。正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください

分類Dev

mysql-ERROR-SQL構文にエラーがあります。近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください

分類Dev

Mysqlエラー(#1064)20行目の ''の近くで使用する正しい構文のSQL構文にエラーがあります

分類Dev

SQL構文エラー:「com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:SQL構文にエラーがあります。」

分類Dev

エラー番号:1064SQL構文にエラーがあります。正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください

分類Dev

エラー 1064 (42000): SQL 構文にエラーがあります。正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

分類Dev

エラー1064(42000):SQL構文にエラーがあります。正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください

分類Dev

無効なクエリ:SQL構文にエラーがあります。使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください

分類Dev

SQL構文にエラーがあります。13行目の ''の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

分類Dev

SQL構文にエラーがあります。')の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

分類Dev

SQL構文にエラーがあります。'INの近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

分類Dev

1064-SQL構文にエラーがあります。'FROMの近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

分類Dev

SQL構文にエラーがあります。')'の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

Related 関連記事

  1. 1

    SQL構文にエラーがあります。MySQLサーバーのバージョンに対応するマニュアルをC#で確認します

  2. 2

    #1064を削除する方法-mysqlのSQL構文エラーにエラーがあります

  3. 3

    スレッド「main」の例外com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:SQL構文にエラーがあります

  4. 4

    mysqlエラーSQL構文にエラーがあります

  5. 5

    MySQLパラメータはC#で定義する必要があります

  6. 6

    MySQL構文エラー| SQL構文にエラーがあります。

  7. 7

    HibernateとMYSQL:SQL構文にエラーがありますか?

  8. 8

    HibernateとMYSQL:SQL構文にエラーがありますか?

  9. 9

    mysql ERROR 1064(42000):SQL構文にエラーがあります。

  10. 10

    MySQL#1064-SQL構文にエラーがあります

  11. 11

    MYSQL:SQL構文にエラーがあります

  12. 12

    MySQL構文エラーSQLエラー[1064] [42000]:SQL構文にエラーがあります

  13. 13

    クエリエラー-SQL構文にエラーがあります。使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください

  14. 14

    MySQLによると:ドキュメント(#1064)-SQL構文にエラーがあります。

  15. 15

    MySQLエラー1064:SQL構文にエラーがあります

  16. 16

    #1064を表示するmysqlクエリ-SQL構文にエラーがあります。

  17. 17

    エラーコード:1064。SQL構文にエラーがあります。正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください

  18. 18

    mysql-ERROR-SQL構文にエラーがあります。近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください

  19. 19

    Mysqlエラー(#1064)20行目の ''の近くで使用する正しい構文のSQL構文にエラーがあります

  20. 20

    SQL構文エラー:「com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException:SQL構文にエラーがあります。」

  21. 21

    エラー番号:1064SQL構文にエラーがあります。正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください

  22. 22

    エラー 1064 (42000): SQL 構文にエラーがあります。正しい構文については、MySQL サーバーのバージョンに対応するマニュアルを確認してください。

  23. 23

    エラー1064(42000):SQL構文にエラーがあります。正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください

  24. 24

    無効なクエリ:SQL構文にエラーがあります。使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください

  25. 25

    SQL構文にエラーがあります。13行目の ''の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

  26. 26

    SQL構文にエラーがあります。')の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

  27. 27

    SQL構文にエラーがあります。'INの近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

  28. 28

    1064-SQL構文にエラーがあります。'FROMの近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

  29. 29

    SQL構文にエラーがあります。')'の近くで使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。

ホットタグ

アーカイブ