我有一个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具有相同值的所有条目。我该怎么做?
答案 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;
然后从此处开始运行您已有的代码。这将选择Attacker
与Black.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;
希望这可以帮到你。