我有一个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;
}
此致
答案 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语句终止最近的封闭循环或开关 出现的陈述。控制权传递给语句 如果有的话,请遵循终止的陈述。