2013-07-09 36 views
2

我有一個asp.net DropDownList,它從SQL視圖中提取其信息。通過另一個SELECT查詢,我在表中填入ListbranchID's。然後我想查看這個列表是否包含與branchDDL.SelectedValue相同的值。我有一個submit button click event下面的代碼:檢查SQL數組是否包含DropDownList值

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檢查說它有一些無效的參數。請有人指點我正確的方向嗎?

回答

1

列表中您遇到這裏的問題是,您比較stringintegers,使得Equals()返回FALSE。

作爲MSDN page specifies

確定序列是否包含通過使用默認的相等比較指定的元素。

在你的代碼,Equals被調用的一側string,而在另一側的int,這將永遠是平等的。嘗試解析你的SelectedValue爲一個整數,然後進行比較;它應該工作。

+0

感謝您的額外信息。這確實是個問題。 – Trido

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

選擇的值是一個字符串,但你用填充整數

+0

這樣做,謝謝。 – Trido