0

在我的应用程序中,我正在使用过滤器表达式过滤数据表并获得与条件匹配的 DataRow。现在我想检查特定列的值是否存在于 DataRow 数组的任何行中。

代码

string FilterCond1 = "id=" + getId;
DataRow[] myrow = DataTable.Select(FilterCond1);
if (myrow.Length > 0)
{
//check for size=28 in DataRow[]
}
else
{
}

我在数据表中有列大小DataTable我想检查 DataRow 数组的任何行在列中是否有值28。我该size怎么做?

4

3 回答 3

3

尝试这个

string FilterCond1 = "id=" + getId;
DataRow[] myrow = DataTable.Select(FilterCond1);
if (myrow.Length > 0)
{
  for(int i = 0; i < myrow.Length; i ++)
  {
    if(myrow[i]["size"].ToString() == "28")
    {
      // YOUR CODE HERE 
    }
  }
}
else
{
}

编辑

只需将条件添加到您的过滤器。

string FilterCond1 = "id=" + getId + " AND size=28";

然后你不需要if(myrow[i]["size"].ToString() == "28")你知道数组中的行是你想要的。

于 2013-04-10T10:46:19.517 回答
0

您可以使用列集合来访问行中的特定列值。

if(myrow[rowIndex]["ColoumnName"].ToString() == "somevalue")

行索引可以从零到长度为 1

根据评论编辑,可以在select中的列上放置多个条件,在这里检查,可能不需要迭代。

string FilterCond1 = "id=" + getId + " AND size = " + 28;
DataRow[] myrow = dt.Select(FilterCond1);

遍历行集合

for(int i=0; i < myrow.Length; i++)
{
   if(myrow[i]["size"].ToString() == "28")
   {
        //your code
   }
}
于 2013-04-10T10:07:15.040 回答
0

首先,您应该使用 foreach 遍历所有行,然后使用以下代码..

if(myrow[row]["size"] == 28)

或者

int ColIndex = 3; // replace 3 with ur co. index 
if(myrow[row][ColIndex] == 28)
于 2013-04-10T10:10:44.420 回答