2009-04-01 2 views
1

Я выполняю несколько выборок в наборе данных. Итоговые # рекорды из всех этих выборок должны соответствовать общему количеству записей в наборе данных, но это не так. (Всего из всех выбранных вариантов меньше.) Я читал, что .Net 1.1 Select имел ошибку с несколькими условиями И, но это 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

Если есть какие-либо записи, для которых Category является dbnull, то они не будут соответствовать и из выражений, которые вы перечислили.

Я предлагаю изменение вашего последнего filter к:

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

Причина это не работает, потому что это сравнение с DBNull выходом нулевому, а не ожидаемый ложным.

+0

Все, спасибо! –

Смежные вопросы