检查DataTable中的值

时间:2015-01-11 15:41:57

标签: c# loops datatable

我有一个DataTable dtOne,其记录如下:

ColumnA ColumnB ColumnC
1001    W101    ARCH
1001    W102    ARCH
1002    W103    CUSS
1003    W104    ARCH

另一个DataTable dtTwo,其值为:

ColumnA
ARCH
CUSS

我需要检查dtTwo的值是否存在于dtOne中,如果不是在网页上写的话。

我编写了以下代码,但它无法正常工作。我需要检查一下,如果dtOne中存在来自dtTwo表的ARCH,请不要进一步检查,只需将其写入网页即可。

for (int counter = 0; counter < dtTwo.Rows.Count; counter++)
   {
    var contains=dtOne.Select("ColumnC= '" + dtTwo.Rows[counter][0].ToString() + "'");
    if (contains.Length == 0)
      {
       Response.Write("CostCode "+dtTwo.Rows[counter][0].ToString()+" not present in the Excel");
      }
   }

专家请帮忙。

编辑: 我编写下面的代码时会实现我的功能,但会收到一个警告,指出在计数器变量处检测到无法访问的代码。

我认为不正确。

for (int counter = 0; counter < dtTwo.Rows.Count; counter++)
       {
        var contains=dtOne.Select("ColumnC= '" + dtTwo.Rows[counter][0].ToString() + "'");
        if (contains.Length == 0)
          {
           Response.Write("CostCode "+dtTwo.Rows[counter][0].ToString()+" not present in the Excel");
          }
          break;
       }

此致

1 个答案:

答案 0 :(得分:1)

根据您的澄清,如果您从第一张表格中的第二张表中找到匹配项,则需要停止。

然后,当Select选择找到与条件

匹配的一行或多行时,需要添加break语句
for (int counter = 0; counter < dtTwo.Rows.Count; counter++)
{
    var contains=dtOne.Select("ColumnC= '" + dtTwo.Rows[counter][0].ToString() + "'");
    if (contains.Length != 0)
    {
       Response.Write("CostCode "+dtTwo.Rows[counter][0].ToString()+" not present in the Excel");
       break;
    }
}

来自C#参考

  

break语句终止最近的封闭循环或开关   出现的陈述。控制权传递给语句   如果有的话,请遵循终止的陈述。