SqlCommand sélectionner toutes les colonnes avec une certaine valeur

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.