Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/linq/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# LINQ从数据表中选择数据行_C#_Linq - Fatal编程技术网

C# LINQ从数据表中选择数据行

C# LINQ从数据表中选择数据行,c#,linq,C#,Linq,我有一个DataTable,我试图做一个简单的选择行,其中包含一个值 我的代码 var LoginDetails = from myRow in DTOperators.AsEnumerable() where myRow.Field<string>(0) == UserName select myRow; var LoginDetails=来自DTOperators.A

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

我的代码

  var LoginDetails = from myRow in DTOperators.AsEnumerable()
                           where myRow.Field<string>(0) == UserName
                           select myRow;
var LoginDetails=来自DTOperators.AsEnumerable()中的myRow
其中myRow.Field(0)=用户名
选择myRow;
我试图检查字符串用户名是否存在于datatable中行的位置0

当我运行此查询时,返回一个空白数据行

我已尝试在我要选择的位置周围使用[]


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

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

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;
var DTOperators=new DataTable();
var UserName=“test”;
DTOperators.Columns.Add(“用户名”,typeof(字符串));
DTOperators.Rows.Add(“test1”);
DTOperators.Rows.Add(“测试”);
var LoginDetails=来自DTOperators.AsEnumerable()中的myRow
其中myRow.Field(0)=用户名
选择myRow;
我有一个可枚举的数据行。 您还可以尝试按columnName获取数据:

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

看起来不错,有什么异常或问题?字段索引是否正确?我知道您想检查位置0,但它是否包含名称?我尝试使用一个简单的数据表,检查了位置1,它确实返回了2条记录。您正在检查
=
即使是空格也可能会在这里造成问题!“空白”是指所有字段的一个数据行均为null&默认值吗?小问题-两个版本都需要显式引用文件中的System.Data命名空间。第一个版本并没有给你一个友好的方式来解决这个问题,而第二个版本却提供了。