从数据表中选择一列以检查其值

本文关键字:一列 检查 数据表 选择 | 更新日期: 2023-09-27 18:15:16

我有一个数据表,其中有3列"Name","Type","ID"我想只使用其中的一列进行比较。也就是"类型"。我想把那个列放到datacolum列中,与数据表分开,用字符串比较其中单元格的值,如果匹配,就传递一个字符串。我不确定这种方法是对还是错,我甚至不知道如何在这个数据列中获得单元格(行)的字符串值进行比较

下面是我的代码:

DataTable Griddetails;
Griddetails = RxMUaClient.BrowseGrid("2", "127.0.0.1:48030", nodepassed);
var myColumn = Griddetails.Columns.Cast<DataColumn>()
                          .SingleOrDefault(col => col.ColumnName == "Type");
return Json(myColumn);
if (myColumn != null)
{
    for (int i = 0; i <= myColumn.; i++ )
    {
    }
}

我正试图通过for循环或foreach在datacoluml中获得datarow计数,foreach不能处理一些错误,我不知道如何获得for循环的datacoluml的值。

有什么帮助吗

从数据表中选择一列以检查其值

即使这个问题对我来说仍然没有多大意义,如果你只是想知道一个表有多少行属于给定的DataColumn:

int rowCount = myColumn.Table.Rows.Count;

注意,您不需要LINQ查询来查找列,您可以使用接受字符串的DataColumnCollection索引器:

DataColumn myColumn = Griddetails.Columns["Type"];

如果没有该名称的列,则按预期工作,并返回null


在您编辑的问题之后,似乎您实际上想找到包含给定值的类型列的行(s)。你可以使用LINQ:

var matchingRows = from row in Griddetails.AsEnumerable()
                   where row.Field<string>("Type") == valueYouSearch
                   select row;
DataRow firstRow = matchingRows.FirstOrDefaul();
if(firstRow != null)
{
    // here you know that there is at least one row with that value in the type-column
    string firstType = firstRow.Field<string>("Type"); // pointless, maybe you want to return different column's value
    // ....
}