SqlCommand select 具有特定值的所有列

SqlCommand select all columns with a certain value

我有一个 SqlDataReader,它需要从我的数据库中读取某些值。 select 这些值的 SqlCommand 如下所示:

SqlCommand myCommand = new SqlCommand("SELECT * FROM dbo.Confronting_Value", valueConnection);

数据库中的每个条目由 "Attacker"、"Defender" 和 "Value" 组成。所有 3 个都包含整数值。

例如

Attacker: "665", Defender: "443", Value: "3". 

可能有多个条目 "Attacker" 的值为“665”。

现在,SELECT WHERE Attacker = 665 会很简单,但我有一个变量 Black.ID。我想 select 攻击者具有与 Black.ID 相同值的所有条目。我该怎么做?

不确定我是否理解正确 - 但只需向查询添加 参数 可能会起作用:

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;

然后从这里开始,运行 您已有的代码。这将 select Attacker 与您的 Black.ID 值具有相同值的所有行。

抱歉,Black.ID 是什么?代码中的变量?数据库中另一个table的列? 在第一种情况下,向您的命令添加一个 Where 子句,如下所示:

"SELECT * from dbo.Confronting_Value WHERE Attacker=" + Black.ID

或更好

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;

希望对您有所帮助。