【发布时间】:2015-04-10 16:43:38
【问题描述】:
我正在尝试做的事情:我有一个大型数据表,我正在浏览一个字符串列表,其中一些在数据表中,而另一些则不在。我需要列出那些是的,并计算那些不是的。 这是我的代码部分:
DataRow[] foundRows;
foundRows = DTgesamt.Select("SAP_NR like '%"+SAP+"%'");
if (AreAllCellsEmpty(foundRows[0]) == false && !(foundRows[0]==null))
{
list.Add(SAP);
}
else
{
notfound++;
}
public static bool AreAllCellsEmpty(DataRow row)
{
if (row == null) throw new ArgumentNullException("row");
for (int i = row.Table.Columns.Count - 1; i >= 0; i--)
{
if (!row.IsNull(i))
{
return false;
}
}
return true;
}
DTgesamt 是一个大型数据表。 “SAP”是一个字符串,它位于 DataTable 的第一列,但并非所有这些都包括在内。我想用 int "notfound" 来计算未找到的那些。 问题是,当它什么也没找到时,Select 返回一个空的 DataRow {System.Data.DataRow[0]}。 我正在从数组区域中获取错误消息索引。 if 子句中的两个语句是我在互联网上看到的,但它们不起作用。只有第二个语句它只是将所有数字添加到列表中,第一个它仍然给出这个错误。 感谢您的帮助:)
【问题讨论】:
-
您确定
Select返回并清空DataRow?我的意思是,如果您的“查询”返回一个空行集合,当您尝试访问该集合的位置 0 时,该过程将抛出异常。