我正在写一个wpf destop应用程序,并希望使用sql Server CE作为后端.我想提出一个很好的方法来进行有效的数据分页.在sql Server Express中,我可以这样做:
Select ID,FirstName,LastName From (SELECT ROW_NUMBER() OVER (ORDER BY ID) AS Row,ID,LastName From TestTable ) WHERE Row > 1 AND Row <= 10
在sql Server CE中有什么可比的?我不完全确定是什么,不支持.我只想从数据库中一次只返回10行,而不必拉回所有数据,然后将其过滤到用户显示,因为速度要慢得多.谢谢.
解决方法
老实说,可能最快的事情是使用
SqlCeDataReader,并调用.Read()10次.然后当用户移动到下一页时,您已经指向第11个结果,并且可以再读取10个.如果您需要向后移动,您可以缓存结果或切换到支持
seeking的
SqlCeResultSet.
此外,sqlCeDataReader / Result是从经验来看,与桌面上数据库进行交互的绝对最快的方式.它可以比使用DataSets / DataAdapters快100倍.