C# LINQ从数据表中选择数据行
我有一个DataTable,我试图做一个简单的选择行,其中包含一个值 我的代码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
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命名空间。第一个版本并没有给你一个友好的方式来解决这个问题,而第二个版本却提供了。