SqlCommand选择具有特定值的所有列

时间:2016-01-08 08:00:57

标签: c# sql-server sqlcommand

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

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

数据库中的每个条目都包含“攻击者”,“后卫”和“价值”。所有3都包含整数值。

例如

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

可能有多个条目,其中“攻击者”的值为“665”。

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

2 个答案:

答案 0 :(得分:7)

不确定我是否理解正确 - 但只是在查询中添加参数可能会有效:

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;

然后从此处开始运行您已有的代码。这将选择AttackerBlack.ID值具有相同值的所有行。

答案 1 :(得分:0)

对不起,什么是Black.ID?代码中的变量?数据库中另一个表的列? 在第一种情况下,在命令中添加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;

希望这可以帮到你。