首页 文章

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

提问于
浏览
-2

我有一个数据表有3列“名称”,“类型”,“ID”我想只使用其中的一列进行比较 . 这是“类型” . 我想将该列放在与数据表分离的DataColumn中,将其中的单元格值与字符串进行比较,然后在匹配时传递一个字符串 . 我不确定这种方法是对还是错,我甚至不知道如何获取此Datacolumn中单元格(行)的字符串值进行比较

这是我的代码:

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获取dataColumn中的数据行计数,foreach不能用于某些错误,而且我不知道如何获取for循环的datacolumn的值 .

有帮助吗?

1 回答

  • 0

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

    int rowCount = myColumn.Table.Rows.Count;
    

    注意,您不需要LINQ查询来查找列,您可以使用 DataColumnCollection indexer that takes a string

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

    如果没有具有该名称的列并返回 null ,它将按预期工作 .


    在您编辑的问题之后,您似乎确实想要找到哪个类型列包含给定值 . 您可以使用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
        // ....
    }
    

相关问题