私の C# プログラムには、次のような SQL ステートメントがあります。
SELECT * FROM XXX.dbo.XXX
WHERE Source = 'OH'
AND partnum = '1231202085'
ORDER BY partnum, Packaging, Quantity
このクエリを SQL Server Management で実行すると、結果は期待どおりに並べられます。私の最初の 3 つの結果は、数量が 32.0、50.8、および 51.0 の同じ部品番号とパッケージを持っています。
しかし、私のプログラムからクエリを実行すると、数量 50.8 の結果セットが最初に返されます。Quantity のデータ型は decimal(18,9) です。キャストを試しましたが、データ型の問題ではないようです。
なぜ中間の量になるのかわかりません。
迅速な対応に感謝しますが、もう少しテストした後、SQLではなくC#コードに問題が見つかりました。
私が持っていたクエリ結果を取得した後:
if (PurchOrder.Read())
while (PurchOrder.Read())
最初の読み取りが実際に私の最初の結果を読み取り、次に 2 番目の結果を取得するという事実を見落としています。
if ステートメントを次のように置き換えます。
if (PurchOrder.HasRows == true)
そして、すべてがうまく見えます。
繰り返しになりますが、回答をありがとうございます。誤解を招く質問で申し訳ありません。
-コーディ