Impossible de mettre à jour la table dans SQL c #

J'ai une table appelée Ville qui tient une relation entre le joueur et les bâtiments d'un joueur. La table a les colonnes suivantes: ID user (int) ID bâtiment (int) (int)

J'ai réussi à insert un nouveau bâtiment pour un joueur et maintenant j'ai du mal à mettre à jour la rangée spécifique pour un joueur.

J'ai ce code:

if (!existPlayerBuilding(userid, buildingid)) { SqlConnection sqlcon = new SqlConnection(connectionSsortingng); ssortingng 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(connectionSsortingng); ssortingng 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!!!!"; } 

La méthode existPlayerBuilding renvoie true si un joueur a déjà un bâtiment avec l'identifiant donné et false sinon. Lorsque je cours et que je teste si je peux mettre à jour un numéro pour un user, rien ne se passe.

La syntaxe d'une mise à jour dans SQL serait

 UPDATE Town SET number = @number WHERE userid = @userid AND buildingid = @buildingid 

Votre requête de mise à jour est erronée:

 UPDATE Town SET number = @number WHERE userid = @userid AND buildingid = @buildingid