【发布时间】:2011-01-23 23:04:29
【问题描述】:
我正在尝试完成我的新闻/博客 ASP.net C# 应用程序的编写,但在基于标签或关键字过滤项目后,我一直不知道如何一次只返回 10 个项目。 这是我正在寻找的一个例子:
- 用户通过浏览到 ?tag=Pizza 查询 sql
- 后端查找与查询字符串相等的所有标签(作为@参数发送)。这部分我已经想通了。
-
现在我希望它一次只从这个过滤语句返回 10 行。当我没有过滤掉任何东西时,我很容易做到这一点:
sqlCommand.CommandText = "SELECT * FROM (SELECT row_number() over(ORDER BY news_id) AS row_number, * FROM news) T WHERE row_number BETWEEN (SELECT rowcnt FROM sys.sysindexes WHERE (id = OBJECT_ID('news')) AND (indid < 2))-(@start+10) AND (SELECT rowcnt FROM sys.sysindexes WHERE (id = OBJECT_ID('news')) AND (indid < 2))-(@start) ORDER BY news_id DESC"; sqlCommand.Parameters.Add("@start", SqlDbType.Int).Value = start; 然后我会在页面底部显示用户查看更多内容的选项。 (这部分很简单,我只需要将 10 添加到 ?num= 的查询字符串中)。
实现这一目标的最佳方法是什么?
【问题讨论】:
标签: c# asp.net sql-server