留言簿

我要留言
留言搜索

2007-07-27 15:48  basearea

解决了,得需要用临时表

2007-07-27 15:28  basearea

分页存储过程<br>当查询参数比较多时,判断起来比较麻烦,能不能像我下面这样写,但现在这样写存在问题<br>CREATE procedure NewhouseGetSearchResult  <br>(@area NVarChar(10),  <br> @key NVarChar(20),<br>@pagesize int,  <br>@pageindex int,  <br>@docount bit)  <br>as  <br>declare @strSQL nvarchar (300)<br>declare @strSQL2 nvarchar (300)<br>declare @strSQL3 nvarchar (300)<br>	select @strSQL=''<br>              <br>	if (@key&lt;&gt;'0')<br>                    SELECT @key =REPLACE(@key,char(39),'')<br>	       SELECT @key = '''%'+ @key + '%'''<br>	      select @strSQL='and name like '+ @key +''<br>	if (@area&lt;&gt;'0')<br>		select @strSQL='and area =&quot;'+@area+'&quot;'<br>	select @strSQL2='select count(id) from loupan  where 1=1'+@strSQL<br>	<br><br><br>set nocount on  <br>if(@docount=1)  <br>   exec sp_executesql @strSQL2<br>    -- select count(id) from loupan  where 1=1  +@strSQL<br>  <br>else  <br>begin  <br>declare @indextable table(id int identity(1,1),nid int)  <br>declare @PageLowerBound int  <br>declare @PageUpperBound int  <br>set @PageLowerBound=(@pageindex-1)*@pagesize  <br>set @PageUpperBound=@PageLowerBound+@pagesize  <br>set rowcount @PageUpperBound  <br>  select @strSQL3=' insert into indextable(nid) select id from loupan where  1=1'+@strSQL+'order by id desc'<br>   exec sp_executesql @strSQL3<br>-- insert into @indextable(nid) select id from loupan where  1=1  +@strSQL  order by id desc  <br> <br>--insert into @indextable(nid) select id from cc where areae=@area order by id desc  <br>select O.id,O.[name],O.dizhi,O.price1,O.biaozhun,O.areatype,O.jingguantu,O.tel,send_time,0 from loupan O,@indextable t where O.id=t.nid  <br>and t.id&gt;@PageLowerBound and t.id&lt;=@PageUpperBound order by t.id  <br>end  <br>set nocount off<br>GO<br><br><br><br>该怎么写?才能在判断查询参数的时候比较节省代码
回复:可以试试把查询条件做为一个字符串类型的参数传递到过程中,然后用execute函数来执行这样的sql语句,不过这样查询效率可能不如不用execute函数的效率高。

2007-07-27 07:10  cutech

感谢 shengnet Url分页时的bug解决方法v6.0<br><br>public int CurrentPageIndex -&gt; Set里面改为else if (cpage &gt; PageCount &amp;&amp; this.RecordCount!=0) 之前是else if (cpage &gt; PageCount)<br><br>修复了url分页点击page index 不切换page的问题 因为在EventPager_PageChanged 里面如果用 urlpaging, RecordCount 值总是0
回复:谢谢,我有时间测试一下,再发布下个版本时会注意这个问题。

2007-07-24 14:28  amyxlf

UrlPaging=&quot;True&quot;.每次都要 COUNT了是吧~~?就等于重新加载一遍吗?
回复:是的,不过可以用Session或者缓存来保存这个值,不用每次分页都重新计算或从数据源获取。

2007-07-24 14:28  amyxlf

if (!IsPostBack)<br>        { <br>a=request.queststring[&quot;A&quot;];<br>BindData();  <br>      }<br>   public void BindData()<br>{<br>   AspNetPager1.RecordCount = objData.ExcSqlIntScalar(strSql);<br>。。。。<br>}<br>我 UrlPaging=&quot;false&quot;的时候,当我分页的时候。这个a参数就不见了!
回复:这和分页没有关系,只要页面回发,那么a的值肯定就变量的初始值而不是request.queststring["A"]的值,因为这段代码在if(!IsPostBack)块中,也就是只在页面第一次加载时才运行,以后的回发都不会被执行,如果要想在回发后也执行这段赋值代码,那么应该把代码放在if(!IsPostBack)之外。

2007-07-24 14:22  amyxlf

我在这里面找到的AJAX的例子好像都是英文的,所以我想要一个AJAX中文的例子
回复:不知道您说的例子中的哪部分是英文呢?如果是指数据,那无论是中文还是英文应该没有关系,示例中的数据为了方便用了数据库自带的northwind的英文数据库。

2007-07-24 10:21  zituocn

老吴,你好。谢谢你昨天回答我的留言,昨天的问题已经得到解决。可是今天又有新问题了 :)<br><br>我一个页面需要根据传入的参数不同,进行不同格式的重写,有一个参数为int型,另外一个为string。<br>我在类文件中,根据传入的参数进行控制,如果没有传递int时,需要传按这个string的变最进行重写,不过最后得到的html代码是这样的:<br>&lt;a title=&quot;转到第2页&quot; href=&quot;/games_%word%_2.html&quot;&gt;,<br>我在类文件中是这样控制的:<br>			if(typeid&gt;0)<br>			{<br>				this.AspNetPager1.UrlRewritePattern = &quot;games_%typeid%_{0}.html&quot;;<br>			}else<br>			{<br>				this.AspNetPager1.UrlRewritePattern = &quot;games_%word%_{0}.html&quot;;<br>			}<br> 其中typeid为int型,word为string,都为申明成的public类成员变量。<br><br>不知道是什么原因超成的,谢谢您能帮我解答 :)
回复:Url中有typeid或word这个参数吗?如果没有的话就不会替换百分号中的值。

2007-07-23 17:43  zituocn

站长好,我们的项目中一直在用6.0的控件,最近碰到一个问题。<br>我启用了UrlRewrite,但是我需要通过get方式传送一个参数,参数类型为int,<br>但是我看您的url重写例子中是这样写的:<br>UrlPaging=&quot;true&quot; EnableUrlRewriting=&quot;true&quot; UrlRewritePattern=&quot;./listpage_{0}.aspx<br>,这个地上只能传送一个参数,也就是页码。<br>如果我想传递我的其他参数,应该如何做。<br>谢谢:)
回复:用“%参数名%”来代替url中“参数名”这个参数的值即可,请参阅控件帮助文档中的说明。谢谢!

2007-07-23 12:30  wuxiaobo5909

问题解决了...

2007-07-23 11:52  wuxiaobo5909

哦..原来是这样..可是第二页没有数据...<br>存储过程..我是用你的代码工具生成的.<br>其中有一个参数@pageindex,调试时我发现传进的参数是AspNetPager1.PageSize+1<br>查不到数据...我在SQL查询分析器中试了一下存储过程...过程没问题...不知是那了问题了.还望指教一下
回复:@pageindex表示的是当前页索引,应该将控件的CurrentPageIndex传递给它,AspNetPager1.PageSize+1这和当前页索引毫无关系,把它传递给该参数显然是不对的。
;