私は、プレイヤーとプレイヤーの建物の関係を保持するTownというテーブルを持っています。テーブルには、これらの列があります。 ユーザーID(int型) buildingid(int型) 番号(int型)SQLのCant更新テーブルC#
私は成功したプレーヤーのための新しい建物が挿入されているし、今私は、トラブルのプレーヤーのための特定の行を更新しています。
私はこのコードを持っている:プレイヤーはすでにそう与えられたidを持つ建物や虚偽がある場合
if (!existPlayerBuilding(userid, buildingid))
{
SqlConnection sqlcon = new SqlConnection(connectionString);
string query = "INSERT INTO Town VALUES(@userid, @buildingid, @number)";
SqlCommand sqlcom = new SqlCommand(query, sqlcon);
sqlcom.Parameters.Add("@userid", userid);
sqlcom.Parameters.Add("@buildingid", buildingid);
sqlcom.Parameters.Add("@number", number);
try
{
sqlcon.Open();
sqlcom.ExecuteNonQuery();
sqlcon.Close();
}
catch (Exception i)
{
lblTestlabel.Text = "SQL FEILET";
}
lblTestlabel.Text = "Bygningen ble kjøpt!!!!";
}
else
{
SqlConnection sqlcon = new SqlConnection(connectionString);
string query = "UPDATE Town VALUES(@userid, @buildingid, @number) WHERE userid = @userid AND buildingid = @buildingid";
SqlCommand sqlcom = new SqlCommand(query, sqlcon);
sqlcom.Parameters.Add("@userid", userid);
sqlcom.Parameters.Add("@buildingid", buildingid);
sqlcom.Parameters.Add("@number", number);
try
{
sqlcon.Open();
sqlcom.ExecuteNonQuery();
sqlcon.Close();
}
catch (Exception i)
{
lblTestlabel.Text = "SQL FEILET";
}
lblTestlabel.Text = "Bygningen ble kjøpt!!!!";
}
existPlayerBuildingメソッドはtrueを返します。私が走ってテストするときに、何も起こらないユーザービルディングのために番号を更新できるかどうかをテストします。
それは多くの場合、構文エラーを出しSUSSする管理スタジオで問題のあるSQLコマンドを実行すると便利です。 – RQDQ