2011-04-15 138 views
-1

如何篩選下拉列表?我試圖做一個代碼,但它不工作..請檢查我的代碼。 tnx篩選下拉列表

DataSet ds = new DataSet(); 
    DataTable dt = ds.Tables.Add("Source"); 

    string category; 
    category = drpCategory.SelectedValue; 
    DataRow[] foundRows; 


    foundRows = table.Select(category); 

    for (int i = 0; i < foundRows.Length; i++) 
    { 
     Console.WriteLine(foundRows[i][0]); 
    } 
+1

定義「失敗」。 – 2011-04-15 02:18:52

+1

定義「不工作」。 – 2011-04-15 05:18:23

+0

失敗並正在工作 – 2011-04-15 06:21:42

回答

2

您可以嘗試使用DataTable.Select(string filterExpression)方法。

+0

這是我絕對可以使用的東西。謝謝! +1問題通過,如果有4個下拉列表(3個填充了一個表格,1個填充了不同的表格)會怎麼樣?我怎樣才能將它們結合起來? – SearchForKnowledge 2015-01-21 15:47:58

0

就在幾天前,我不得不採取類似的措施。你有datatable的select方法,你可以使用簡單的linq或lambda表達式。以下是非常小的示例代碼。在您的方案中,您只需將類別值作爲過濾器傳入即可。希望這可以幫助。

DataTable Dt = new DataTable(); 
Dt.Columns.Add("Name"); 
Dt.Columns.Add("Age"); 

Dt.Rows.Add(new object[] { "Babar", 44 }); 
Dt.Rows.Add(new object[] { "Babul", 55 }); 
Dt.Rows.Add(new object[] { "Bahar", 66 }); 
Dt.Rows.Add(new object[] { "Baird", 3 }); 
Dt.Rows.Add(new object[] { "Cable", 77 }); 

// Linq option 
var q = from r in Dt.AsEnumerable() 
    where r.Field<int>("Age") > 50 
    select r; 

DataRow[] LinkFoundRows = q.ToArray<DataRow>(); 

// Lambda expression option (one liner) 
DataRow[] FoundRows2 = Dt.AsEnumerable().Where(row => row.Field<int>("Age") > 50).ToArray<DataRow>(); 

DataRow[] StdSelect = Dt.Select("Age > 50"); 

// all three requests will result you DataRows containing Babar, Bahar, Cable 
+0

它不能正常工作 – 2011-04-15 03:34:06