J'ai un SqlDataReader
, qui a besoin de lire certaines valeurs de ma database. Le SqlCommand
qui sélectionne ces valeurs ressemble à ceci:
SqlCommand myCommand = new SqlCommand("SELECT * FROM dbo.Confronting_Value", valueConnection);
Chaque input dans la database se compose de "Attacker", "Defender" et "Value". Tous les 3 contiennent des valeurs entières.
Par exemple
Attacker: "665", Defender: "443", Value: "3".
Il peut y avoir plusieurs inputs où "Attacker" a la valeur "665".
Maintenant, SELECT WHERE Attacker = 665
serait simple, mais j'ai une variable Black.ID
. Je veux sélectionner toutes les inputs où l'attaquant a la même valeur que Black.ID. Comment je fais ça?
Vous ne savez pas si je vous ai bien compris, mais il suffit d'append un paramètre à la requête:
SqlCommand myCommand = new SqlCommand(@"SELECT * FROM dbo.Confronting_Value WHERE Attacker = @Value", valueConnection); // add parameter and set its value to "Black.ID" myCommand.Parameters.Add("@Value", SqlDbType.Int).Value = Black.ID;
et ensuite, lancez le code que vous avez déjà. Cela sélectionnera toutes les lignes où l' Attacker
a la même valeur que votre valeur Black.ID
.
Désolé, qu'est-ce que Black.ID? Une variable dans votre code? Une colonne d'une autre table dans la database? Dans le premier cas, ajoutez une clause Where à votre command comme ceci:
"SELECT * from dbo.Confronting_Value WHERE Attacker =" + Noir.ID
ou mieux
SqlCommand myCommand = new SqlCommand("SELECT * FROM dbo.Confronting_Value WHERE Attacker = @param1", valueConnection); myCommand.Parameters.Add("@param1", SqlDbType.Int); myCommand.Parameters["@param1"].Value = Black.ID;
J'espère que cela peut vous aider.