Ich habe eine SQL-Anweisung in meinem C# Programm, das wie folgt aussieht:ORDER BY gibt falsche Reihenfolge
SELECT * FROM XXX.dbo.XXX
WHERE Source = 'OH'
AND partnum = '1231202085'
ORDER BY partnum, Packaging, Quantity
Wenn diese Abfrage in SQL Server Management ausgeführt wird, werden die Ergebnisse als erwartet bestellt. Meine ersten 3 Ergebnisse haben die gleiche Partnum und Verpackung mit Mengen von 32,0, 50,8 und 51,0.
Wenn ich jedoch die Abfrage von meinem Programm ausführen, wird die Ergebnismenge mit der Menge 50.8 zuerst zurückgegeben. Der Datentyp von Quantity ist dezimal (18,9). Ich habe versucht zu casten, es scheint kein Datatypeproblem zu sein.
Ich kann nicht herausfinden, warum es die mittlere Menge bekommen.
Danke Jungs für die schnellen Antworten aber nach ein wenig mehr Tests ich mein Problem in meinem C# -Code gefunden, nicht die SQL.
Nachdem die Abfrage-Ergebnisse bekomme ich dafür hatten:
if (PurchOrder.Read())
while (PurchOrder.Read())
die Tatsache übersehen, dass die erste Lese in der Tat würde mein erstes Ergebnis lesen, dann whould die während mein zweites Ergebnis erhalten.
Ive ersetzen Sie die if-Anweisung mit:
if (PurchOrder.HasRows == true)
und alles schaut fein.
Nochmals vielen Dank für die Antworten. Entschuldigung für die irreführende Frage.
-Cody
Bitte zeigen Sie Ihren C# -Code. –
Können Sie das Code-Snippet anzeigen, in dem Sie die Abfrage ausführen? – alf
@GrantWinney Ich verstehe Ihren Kommentar nicht: 'Packaging' befindet sich in der' ORDER BY'-Klausel – phoog