テーブル「clothes」のMySQLデータベースに新しい衣料品を挿入する次のメソッドがあります。
次の例外メッセージが表示されます。
エラー:Actor.AddCloth()-SQL構文にエラーがあります。'CONDITION、WET_CONDITION、REPUTATION_BONUS、ICON_ID)VALUES(12、' Tunic '、11、2、'の1行目で使用する正しい構文については、MySQLサーバーのバージョンに対応するマニュアルを確認してください。
私がこれまでにしたこと:
スペルをチェックしてください-すべて正しい
パラメータを確認してください-すべて問題ないようです
順序を確認してください-すべて正しい
チェックされた構文と間隔-正しいようです
マニュアルを確認しました-私には何も飛び出しません
したがって、私はここで機能していないものに迷っています。私は他のメソッドにも同じ構文を使用していますが、それらは正常に機能しています。
更新されたコード:
/// <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;
}
この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。
侵害の場合は、連絡してください[email protected]
コメントを追加