2009-04-01 2 views
1

データセットで複数のSelectを実行しています。これらのすべてのレコードからの合計レコードは、データセット内のレコードの総数と一致するはずですが、一致しません。 (すべての選択肢の合計は少ないです).Net 1.1 Selectには複数のAND条件でバグがありましたが、これはVS2005 & .Net 2.0です。DataSet Selectが加算されない

コードは次のとおりです。 注:一部の列のカテゴリ値は入力されません。

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>"); 

答えて

7

Categorydbnullされているすべてのレコードがある場合、それらは一致すると、あなたが列挙されている表現のではないでしょう。

私はあなたの最後のfilterを変更するお勧め:

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

それが動作しない理由は、DBNullは歩留まりヌルではなく、予想される偽との比較からです。

+0

それは、ありがとう! –

関連する問題