来自SQL的分页行项目。这是我正在寻找的示例:用户浏览到?tag=Pizza查询sql后端所有等于查询字符串的标签(作为@parameter发送)。我已经弄清楚了这部分。现在我希望它从这个过滤语句一次只返回10行。当我不过滤任何东西时,我可以很容易地做到这一点:sysindexesWHERE(id=OBJECT_ID('news'))AND(indid<2))-(@start+10)AND(SELECTrowcntFROMsys.sysindexesWHERE(id=OBJECT_ID('news'))AND(indid<2))-(@start)ORDERBYnews_idDESC";sqlCommand.Parameters.Add("@start",SqlDbType.Int).Value=start;然后,我在页面底部显示用户可以查看更多内容选项。(这部分很简单,因为我只需要在查询字符串中添加10?num=)。实现这一目标的最佳方法是什么?了解row_number如何对结果进行编号最初有点棘手。看起来有两件事使它变得更加复杂。row_number函数必须与发生过滤的SELECT或外部SELECT相同,否则您将对整个表而不是结果进行编号。您的查询编号在表中的所有结果都受到限制,因为row_number用于SELECT和SELECT内的WHERE。其次,虽然您可以将DESC添加到row_number函数,但看起来您正在点击sys.indexes以将行号(我不确定它是否始终准确)获取到反转的行号范围。SELECT*FROM(SELECTrow_number()over(ORDERBYnews_idDESC)ASrow_number,*FROMnewsWHERE--userfiltergoesherenews_cat='Pizza')ASTWHERErow_numberBETWEEN@startAND@start+10查看关于SQL的服务器分页查询的以下问题:等。我2年前在CodeProject上写了这篇文章,当分页支持在框架中仍然相当有限时,也许仍然是一个很好的参考。如果您只关心数据,请查看我关于如何检索分页数据的部分。http://www.codeproject.com/KB/aspnet/GridViewNeatPaging.aspx以上是C#学习教程:SQL分页行分享的全部内容。如果对大家有用,需要进一步了解C#学习教程,希望大家多多关注——本文收集自网络,不代表立场。如涉及侵权,请点击右侧联系管理员删除。如需转载请注明出处:
