检查SQL数组是否包含DropDownList值

时间:2013-07-09 23:16:41

标签: c# asp.net

我有一个asp.net DropDownList,它从SQL视图中提取信息。通过另一个SELECT查询,我从表中填充List branchID's。然后我想看看这个List是否包含与branchDDL.SelectedValue相同的值。我在submit button click event

中有以下代码
List<int> branches;
while (reader1.Read())
{
    branches = (from IDataRecord r in reader1 select (int)r["branchID"]).ToList();
}

if (branches.Contains(branchDDL.SelectedValue))
{
    // Do something here.
}

问题是这不起作用。 if检查说它有一些无效的参数。有人能指出我正确的方向吗?

2 个答案:

答案 0 :(得分:1)

if (branches.Contains(Int32.Parse(branchDDL.SelectedValue)))

所选值是一个字符串,但您使用整数填充列表

答案 1 :(得分:1)

您遇到的问题是您将string值与integers进行比较,使Equals()返回false。

作为MSDN page specifies

  

使用默认相等比较器确定序列是否包含指定元素。

在您的代码中,调用Equals,一边是string,另一边是int,永远不会相等。尝试将SelectedValue解析为整数并在之后进行比较;它应该工作。