2009-04-01 8 views
1

Je réalise plusieurs sélections sur un jeu de données. Le total # enregistrements de tous ces sélections doit correspondre au nombre total d'enregistrements dans l'ensemble de données, mais ne le fait pas. (Total de toutes les sélections est moins.) J'ai lu que. Net 1.1 Select avait un bug w/multiples conditions ET, mais c'est VS2005 & .Net 2.0.Le DataSet Select n'ajoute pas

Voici le code: Remarque: Certaines valeurs de la ligne ne sont pas renseignées.

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

Répondre

7

S'il y a des enregistrements pour lesquels Category est-dbnull, ils ne correspondent pas et des expressions que vous avez énumérés.

Je suggère de changer votre dernière filter à:

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

La raison pour laquelle il ne fonctionne pas est parce que des comparaisons avec DBNull rendement nul plutôt que le faux attendu.

+0

C'était tout, merci! –