检查数据表中的值
Check values in DataTable
我有一个DataTable
dtOne,记录如下:
ColumnA ColumnB ColumnC
1001 W101 ARCH
1001 W102 ARCH
1002 W103 CUSS
1003 W104 ARCH
还有一个 DataTable
dtTwo,其值为:
ColumnA
ARCH
CUSS
我需要检查dtOne中是否存在dtTwo的值,如果没有就写在网页上。
我写了下面的代码,但它不能正常工作。我需要检查一下,如果 dtOne 中存在来自 dtTwo table 的 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;
}
此致
根据您的说明,如果您在第一个 table 中找到第二个 table 的匹配项,您想停止。
那么当你的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# 参考资料
The break statement terminates the closest enclosing loop or switch
statement in which it appears. Control is passed to the statement that
follows the terminated statement, if any.
我有一个DataTable
dtOne,记录如下:
ColumnA ColumnB ColumnC
1001 W101 ARCH
1001 W102 ARCH
1002 W103 CUSS
1003 W104 ARCH
还有一个 DataTable
dtTwo,其值为:
ColumnA
ARCH
CUSS
我需要检查dtOne中是否存在dtTwo的值,如果没有就写在网页上。
我写了下面的代码,但它不能正常工作。我需要检查一下,如果 dtOne 中存在来自 dtTwo table 的 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;
}
此致
根据您的说明,如果您在第一个 table 中找到第二个 table 的匹配项,您想停止。
那么当你的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# 参考资料
The break statement terminates the closest enclosing loop or switch statement in which it appears. Control is passed to the statement that follows the terminated statement, if any.