2011-04-15 140 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