Linq SELECT查询不返回DataTable的第一行

时间:2015-05-06 11:50:36

标签: c# linq datatable

这应该是一个非常简单的操作,但由于某些原因它没有按预期工作。我试图从DataTable" mainDatatable"中复制所有行。他们的Export Cell =' True'

这是我的代码:

DataTable table = model.getData.Tables["mainDataTable"].Clone();
var rows = model.getData.Tables["mainDatatable"].Select("Export = 'True'");

foreach (var row in rows)
{
    table.ImportRow(row);
}

现在,当我运行它时,它总是获取所有行,包含Export =" True",除了DataTable中的第一行之外的所有行...我做错了什么?

2 个答案:

答案 0 :(得分:0)

如果您的表数据全部正确,我看不出为什么没有这个原因。请检查: -

你的True实际上是一个字符串吗?如果是,请再次检查数据。 * space * 可能会在第一行显示“true”。

答案 1 :(得分:0)

我对DataTable并不熟悉,但在Linq中,查询不是使用Select构建的,而是使用Where。

所以我会尝试类似的事情:

var rows = model.getData.Tables["mainDatatable"].AsEnumerable().Where(x=>x.Field<string>("Export").Equals("true"));

或 - 如果是布尔值

var rows = model.getData.Tables["mainDatatable"].AsEnumerable().Where(x=>x.Field<bool>("Export"));