LINQ从DataTable中选择DataRow

时间:2013-08-16 11:44:05

标签: c# linq

我有一个DataTable我试图做一个包含值的简单选择行。

我的代码

  var LoginDetails = from myRow in DTOperators.AsEnumerable()
                           where myRow.Field<string>(0) == UserName
                           select myRow;

我正在尝试检查字符串UserName是否存在于数据表

中的行的位置0

当我运行此查询时,我得到一个空白的数据行。

我试图在我想要选择的位置周围使用[]。

任何人都能看到我做错了什么。

1 个答案:

答案 0 :(得分:20)

您必须检查是否与正确的列进行比较并检查表格中的数据。这项工作很好:

var DTOperators = new DataTable();
var UserName = "test";
DTOperators.Columns.Add("UserName", typeof(string));
DTOperators.Rows.Add("test1");
DTOperators.Rows.Add("test");
var LoginDetails = from myRow in DTOperators.AsEnumerable()
                     where myRow.Field<string>(0) == UserName
                     select myRow;

我有一个数据阵列的Enumerable。 您还可以尝试按columnName获取数据:

var LoginDetails = DTOperators.Rows
                              .Cast<DataRow>()
                              .Where(x => x["UserName"] == UserName).ToList();