我的 C# 程序中有一条 SQL 语句,如下所示:
SELECT * FROM XXX.dbo.XXX
WHERE Source = 'OH'
AND partnum = '1231202085'
ORDER BY partnum, Packaging, Quantity
在 SQL Server 管理中运行此查询时,结果按预期排序。我的前 3 个结果具有相同的部分和包装,数量分别为 32.0、50.8 和 51.0。
但是,当我从程序运行查询时,数量为 50.8 的结果集是第一个返回的。Quantity 的数据类型是十进制(18,9)。我试过强制转换,它似乎不是数据类型问题。
我不明白为什么它的数量中等。
谢谢你们的快速回复,但是经过更多测试后,我发现我的问题是在我的 C# 代码中,而不是在 sql 中。
得到查询结果后,我已经:
if (PurchOrder.Read())
while (PurchOrder.Read())
忽略第一次读取实际上会读取我的第一个结果的事实,然后会得到我的第二个结果。
我将 if 语句替换为:
if (PurchOrder.HasRows == true)
一切看起来都很好。
再次感谢您的回复。抱歉误导性问题。
-科迪