从数据表 - C# 返回特定列名中的行

本文关键字:数据表 返回 | 更新日期: 2023-09-27 18:33:27

我一直在尝试在线找到答案,但我正在使用 DataTable,我想根据表中的列名过滤所有行,但我似乎无法让 filterExpression 工作。即使语法是错误的,这基本上是我希望它做的......

DataRow[] row = sqlDT.Select(ColumnName = "Foo", "ASC", DataViewRowState.CurrentRows);

非常感谢。

从数据表 - C# 返回特定列名中的行

有几种方法可以实现此目的。我建议使用 LINQ 来过滤行:

sqlDT = sqlDT.AsEnumerable().Where(r => r.Field<string>("ColumnName") == "Foo").CopyToDataTable();

还可以使用 Select 方法或 DefaultView.RowFilter 属性:

//select method
sqlDT = sqlDT.Select("ColumnName = 'Foo'").CopyToDataTable();
//row filter property
sqlDT.DefaultView.RowFilter = "ColumnName = 'Foo'";
sqlDT = sqlDT.DefaultView.ToTable();

编辑

如果只想筛选掉不需要的列,请使用 DefaultView.ToTable() 方法:

sqlDT = sqlDT.DefaultView.ToTable(false, "Column1", "Column2", "Column3");

你做的顺序错误,简单地这样做:Datatable.rows(0//its count).item("column name");然后你可以用foreach循环它并制作一个列表

你应该尝试这样的事情

DataRow[] row = sqlDT.Select("ColumnName =' " + Foo + " ' " , "ASC", DataViewRowState.CurrentRows);

我希望这对你有用。