留言簿

我要留言
留言搜索

2006-04-17 17:41  狂情冰峰

版主您好,想请问一下,你的AspNetPager分页控件提供了三种存储过程(sql2000):Table变量,临时表,多重Select语句,请问一下对于海量数据来说,这三种方式哪一种效率更高?
还有,为什么我选择‘多重Select语句’时运行会提示‘TOP 子句中的行数必须是整数’,而其它两种方式都正常?
还有一个问题,我如何设置只取数据库的前100条记录,我试着将存储过程中的Select名主中加入‘top 100’,但好像没有什么效果,主要是下面的导航依然没变?

谢谢!
回复:您好,我只测试过十万到五十万条记录级别的三种存储过程分页的效率,一般来说用表变量速度最快,但因为表变量是在内存中保存相关数据的,所以要占用大量内存,临时表则是在数据库中创建物理表,速度稍慢,而多重Select语句要进行多次选择及排序,数据量太大速度会明显变慢,不过有的朋友却认为它的速度更快,我也没进行过更多测试,您可能需要自己再测试一下比比效率。至于第二个问题,您用top关键字选择记录时,排序的字段值是否有重复的?注意所有重复的值会被当做一条记录,所以top 100选出来的并非一定是100条。谢谢!

2006-04-16 10:29  小翁

怎么把数据绑定到控制上了。
回复:对不起,我不太理解您的意思!分页控件不需要绑定数据,您只需要设置它的RecordCount即分页的记录总数,另外编写PageChanged事件处理程序即可。谢谢!

2006-04-14 22:52  文豪

吴老师,我在使用的时候遇到一些问题,但你这里又不可以发图,我已经发到你的邮件上了,有空帮我看看好吗?
回复:已经回复,请注意查收。谢谢!

2006-04-14 10:11  小友

吴老师,你好!!我要实现的你的这个留言查询的效果,可否将存储过程和调用的原代码发给我一份,我刚学.net,希望能多学习学习。谢谢!
回复:对不起,源代码早弄丢了,所以这个留言簿已经三年多没更新了:)等有时间我会重做一个。谢谢!

2006-04-14 09:43  阿雄

另外,这个控件页面调用时,如下太烦躁,很多页面都用这一段,
<Webdiyer:AspNetPager runat="server" id="pager" OnPageChanged="ChangePage" HorizontalAlign="right" PagingButtonSpacing="0" Height=30 PageSize=4  SubmitButtonStyle="border:1px solid #000066;height:20px;width:30px" InputBoxStyle="border:1px #0000FF solid;text-align:center" SubmitButtonText="转到" NumericButtonTextFormatString="[{0}]" ShowCustomInfoSection="left" Width=760 CssClass="mypager" TextBeforeInputBox="转到第" TextAfterInputBox="页"/>

有很多页面只是上页的width属性,pagesize属性不同,其它都是相同的,有没有更简便的调用方法
回复:这没有好的办法解决,除非您自己修改源代码,将其中属性的默认值改为您常用的值然后重新编译并在项目使用您自己编译的dll文件。谢谢!

2006-04-14 09:24  netyoume

为什么不能编译成.dll文件,用csc编译总是报错,找不到Wuqi.Webdiyer.AspNetPager的命名空间,要怎样做
回复:您用什么编译的?是如何编译的?您的.net框架的版本是多少呢?谢谢!

2006-04-14 08:31  阿雄

吴大哥,感谢你提供这么好的组件!!

问两个问题:

1.Url分页,Postback分页在控件的那个属性设置区别
2.查询分页,如果有多个参数,怎么办?
回复:您好,Url分页是通过UrlPaging这个属性来设置的,其值为true将使用Url分页,默认值为false,即使用回发Postback方式分页;关系查询的问题,这和控件毫无关系,控件和要分页的数据没有直接关系,和从哪里取数据以及如何取数据也没有关系,查询几个字段以及如何实现这样的查询得由您自己来处理的,控件和这些问题没有任何联系。谢谢!

2006-04-14 08:26  nihuajun

您好!
请怒小弟厚颜,什么时候出个asp.net 2.0版的分页啊!
回复:对不起,最近半年多一直在忙手头一个项目,已经加了两个月的班了,暂时实在没时间升级控件,等项目七月左右运行后没有什么问题的话我就可以腾出时间升级这个分页控件。不知道您需要什么新功能,或者发现现在的版本有什么bug?您直接留言或直接和我联系,我会在升级时一并解决这些问题并添加新的功能。谢谢!

2006-04-12 10:03  范

吴哥,看了你的控件中的access代码,看到你用了adapter.Fill(ds,pager.PageSize*(pager.CurrentPageIndex-1),pager.PageSize,"news")这种方法,网上有资料说,这种方法和在数据库中把资料全取出来然后剔除大部分不要的数据的道理是一样的,效率很低,不知道吴哥是怎么看的?或者说有什么新的见解?还是说网上的资料说的是不对的,我看网上说利用类似如下代码进行分页SELECT * FROM ( 

SELECT TOP @PageSize * FROM ( 

SELECT TOP @PageSize*(@PageIndex+1) * FROM @TableName 

ORDER BY @PrimaryKey ASC 

) TableA ORDER BY @PrimaryKey DESC 

) TableB ORDER BY @PrimaryKey ASC 

吴哥说说吧,谢谢,对了,也谢谢吴哥以前通过电子邮件对小弟的指教
回复:是的,用DataAdapter来填充DataSet的分页方法是必须先获取全部记录,在填充数据集时只填充指定条数的记录,这些记录就是当前页要显示的记录,您说的最后一种方法是通过多重Select语句直接从数据库中选出当前页的记录,您可以用我写的代码工具来自动生成这样的SQL语句,至于填充数据集和用多重Select语句来获取当前页数据的方法之间性能的差异,我还没有测试过,直觉应该是多重Select语句快一些。谢谢!

2006-04-08 12:18  Eric_Net

第一次使用 
结果出现 对象名 'news' 无效  不知道什么意思 晕忽忽的
回复:news是数据库中的一个表名,您有这个表吗?
;