मैं सही ढंग से अपने तरीके का उपयोग कर रहा हूँ इस लक्ष्य को हासिल करने के लिए, लेकिन अगर यह कुशल है या नहीं मैं नहीं जानता, इसलिए इस समारोह है:SqlDataReader में पेजिंग को लागू करने का उचित तरीका!
public SqlDataReader GetArticlesByPage(int pageNum, int pageSize)
{
if (pageNum == 0)
pageNum = 1;
SqlDataReader dr = SqlHelper.ExecuteReader(string.Format("SELECT TOP {0} Des, Id, Title, Icon FROM Threads ORDER BY Id DESC", pageSize * pageNum));
int div = pageNum - 1;
div = pageSize * div;
for (int i = 0; i < div; i++)
dr.Read();
return dr;
}
यह ठीक काम करता है, लेकिन आप कोड को देखने के रूप में जब, मुझे पृष्ठ 10 के लेखों को लेने की आवश्यकता है जब पेज आकार जैसे 10 प्रति पृष्ठ मैं शीर्ष 10 * 10 परिणाम का चयन करता हूं, फिर अनचाहे परिणामों को फॉर कथन का उपयोग करके छोड़ देता हूं।
कोई सुझाव, अग्रिम धन्यवाद।
यह ठीक काम करता है, लेकिन यह इतना समय के लिए किया जाना लेता है:/ – Rawhi
वाह, मैं हमेशा किया था इस OFFSET का उपयोग कर लाएं। मैंने इस विधि की तुलना करने के लिए एक परीक्षण चलाया, और सीटीई बहुत अधिक कुशल है। धन्यवाद! –