DataReader是否正常地從查詢中無序返回行?.NET DataReader和ORDER BY
我從一個PostgreSQL 8.3.7數據庫抓取了一些行和正在使用ORDER BY,LIMIT和OFFSET如下:
SELECT id, name
FROM tbl_foo
ORDER BY name
LIMIT 10 OFFSET 0;
如果我運行此查詢手動的結果進行排序,然後第一十行被返回,這是我所期望的。
如果我使用PostgreSQL的第三方ADO.NET提供程序(http://www.devart.com/dotconnect/postgresql/)運行相同的查詢,則行不會以相同的順序返回。這可能是第三方提供商的一個問題,我在他們的論壇上發佈了一篇關於此問題的文章。
我試過用DataTable.Fill()加載行,並通過它們與DataReader.Read()循環。在任何一種情況下,他們都沒有以正確的順序出現。
我想我也會在這裏查看,看看有沒有人經歷過與DataReaders相同的行爲。
謝謝,這就是我正在尋找的東西。然後,我會等待供應商的回覆。 對於什麼值得我不想做客戶端排序,因爲我不得不將所有數據都帶回客戶端,即使我只顯示10行。 事實上,目前有問題的應用程序確實在使用DataViews對ASP進行排序和分頁時遇到了這個問題,並且在將其更改爲在數據庫服務器上進行分頁和排序時遇到了此問題。 – 2009-08-17 20:40:11
科裏,你是對的,這是LIMIT和類似的意思。 – 2009-08-17 21:11:44