Я вижу только одно возможное решение для вас - вы должны выбрать свои данные по первичному ключу. СУБД вернет данные, упорядоченные по первичному ключу. Вы должны запомнить ключ с «максимальным значением», и в следующий раз вы должны добавить условие PK> «максимальное значение», где PK - первичный ключ. Это заставит СУБД возвращать вам следующий пакет данных, размер пакета, который вы можете регулировать по «количеству строк», как ранее
[EDIT]
Я не могу предоставить пример кода, потому что я на самом деле никогда не работаю с БД в C #. Но этот факт не исключает, что СУБД всегда сортирует первичный ключ таблицы. Например, у вас есть таблица со следующими столбцами:
- ID (int) [ПК]
- ДАННЫЕ (CHAR255)
В этой таблице идентификатор является первичным ключом. Таким образом, вы можете сделать что-то вроде ниже (pesudo code):
< declaration of array which will hold you data from DB > - intTab
SELECT * FROM < your DB tab > UP TO 5000 ROWS
INTO CORRESPONDING FIELDS OF TABLE intTab
WHERE < your conditions >
AND ID > 0.
Этот SELECT
вернет вам «первые» 5000 строк из таблицы. «first» означает первые строки в индексе по первичному ключу. Чтобы выбрать следующие 5000 строк, вы должны сделать:
var maxID = < max id from intTab >
SELECT * FROM < your DB tab > UP TO 5000 ROWS
INTO CORRESPONDING FIELDS OF TABLE intTab
WHERE < your conditions >
AND ID > maxID.
Этот выбор вернет «следующие» 5000 строк из-за условия ID > maxID
.