a) 首先在DataAdapter中新建名字为QueryThreadCountByForumId、返回值为Scalar的Query,SQL语句为:SELECT COUNT(*) AS Expr1 FROM rp_threads WHERE (ForumId = @ForumId)
b) 在DataAdapter中新建名为字GetDataByForumId的Query,SQL语句为:SELECT * FROM (SELECT ThreadId, IsVisible, LastUpdateDate, DateLine, Subject, ForumId, ROW_NUMBER() OVER (ORDER BY DateLine) rownum FROM rp_threads WHERE ForumId = @ForumId) t WHERE rownum > @startRowIndex AND rownum <= @startRowIndex + @maximumRows。由于VS2008的设计器不支持窗口函数Over,因此会提示警告,不管它。对于使用Over的语句,VS2008不会帮助生成DataSet字段和参数,不过好在默认的GetData语句已经帮我们生成好了字段,虽然GetDataByForumId比GetData多一个rownum字段,不过新建的Query只要不是比GetData生成的字段少就行,多的部分会忽略。下面主要工作是手动建参数,选中GetDataByForumId方法,修改Parameters属性,在其中建三个Int32类型属性ForumId、startRowIndex、maximumRows,各自对应的ParameterName分别填@ForumId、@startRowIndex、@maximumRows。
c) 在界面中使用ObjectDataSource数据源,TypeName填DataAdapter的类名,SelectCountMethod填QueryThreadCountByForumId、SelectMethod填GetDataByForumId,SelectParameters使用ForumId这一个属性,默认生成的maximumRows、startRowIndex 删掉就行,因为分页会自动填充他们两个。
文章转载自:http://www.rupeng.com/forum/thread-11334-1-1-uid7.html
本文转自 酷小孩 博客园博客,原文链接: http://www.cnblogs.com/babycool/archive/2012/05/26/2519673.html ,如需转载请自行联系原作者