DataSet Select不会加起来

时间:2009-04-01 14:05:32

标签: c# select dataset

我在数据集上执行多个选择。所有这些选择的总记录数应该与数据集中的记录总数相匹配,但不匹配。 (所有选择的总数都较少。)我读过.Net 1.1 Select有多个AND条件的bug,但这是VS2005& .Net 2.0。

这是代码: 注意:未填充某些行的类别值。

string Filter;
Filter = "Category = 'HIGH'";
Response.Write("High: " + dslErrors.Tables[0].Select(Filter).GetLength(0).ToString() + "<br>");

int TotalRecords = dslErrors.Tables[0].Rows.Count; //This is correct

Filter = "Category = 'MEDIUM'";
Response.Write("Medium: " + dslErrors.Tables[0].Select(Filter).GetLength(0).ToString() + "<br>");

Filter = "Category = 'LOW'";
Response.Write("Low Error Count: " + dslErrors.Tables[0].Select(Filter).GetLength(0).ToString() + "<br>");

Filter = "((Category <> 'HIGH') AND (Category <> 'MEDIUM') AND (Category <> 'LOW'))";
Response.Write("Other: " + dslErrors.Tables[0].Select(Filter).GetLength(0).ToString() + "<br>");

1 个答案:

答案 0 :(得分:7)

如果有Categorydbnull的任何记录,则它们将与您列出的表达式不匹配。

我建议您将上次filter更改为:

"(
   (
         (Category <> 'HIGH') 
     AND (Category <> 'MEDIUM')
     AND (Category <> 'LOW')
   )
   OR Category IS NULL
)";

它不起作用的原因是因为与dbnull的比较结果为null而不是预期的假。