2009-04-01 7 views
1

Ich führe mehrere Selects auf einem Datensatz. Die Gesamtzahl der Datensätze aus allen dieser Auswahlen sollte der Gesamtzahl der Datensätze im Dataset entsprechen, tut dies jedoch nicht. (Total aller wählt weniger.) Ich habe gelesen, dass .NET 1.1 Wählen Sie einen Fehler w/mehrere UND-Bedingungen hatten, aber dies ist VS2005 & Net 2.0.DataSet Select nicht aufaddieren

Hier ist der Code: Hinweis: Einige catagory Werte der Reihe sind nicht belegt.

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

Antwort

7

Wenn es irgendwelche Aufzeichnungen sind für die Categorydbnull ist, dann werden sie nicht übereinstimmen und der Ausdrücke haben Sie aufgelistet.

Ich schlage vor, wenn Sie Ihre letzte filter zu:

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

Der Grund ist es nicht der Fall funktioniert, da Vergleiche mit DBNULL Ertrag null statt der erwarteten falsch.

+0

Das war es, Dank! –