我用了webdiyer的http://www.webdiyer.com/utility/procgen.aspx
中的两个方法分别创建了一个相同的只带一个参数的分页存储过程,运用到我的程序中,只有一个正常,另一个不正常:1 正常的存储过程:(用的是临时表的办法)2 不正常的(是用多重select 语句的方法)在IE中运行报错如下:异常详细信息: System.Data.SqlClient.SqlException: 必须声明变量 '@categorycode'。而同样的程序,我调用了第1种方法:(用的是临时表的办法),运行就正常,@categorycode 我是声明了的啊!---------------------------------------------------------俱体详情请看这个:http://www.rczx.com/ask/pr.txt
中的两个方法分别创建了一个相同的只带一个参数的分页存储过程,运用到我的程序中,只有一个正常,另一个不正常:1 正常的存储过程:(用的是临时表的办法)2 不正常的(是用多重select 语句的方法)在IE中运行报错如下:异常详细信息: System.Data.SqlClient.SqlException: 必须声明变量 '@categorycode'。而同样的程序,我调用了第1种方法:(用的是临时表的办法),运行就正常,@categorycode 我是声明了的啊!---------------------------------------------------------俱体详情请看这个:http://www.rczx.com/ask/pr.txt
解决方案 »
- 画温度折线图、降水量柱状图用什么方法好,或者什么控件好?
- 在ItemDataBound事件中添加按钮 并使用按钮事件的问题
- 求解一个比较复杂的sql语句,绑定gridview的,谢谢!
- 日期控件的e.Cell增加一个事件SelectionChanged
- 简单问题!
- 哪位c#和vb都懂的xdjm帮我把下面小段c#代码翻译成vb,先谢了
- 请教高手!!控件数组显示问题。。。
- 各位老大,怎么用asp.net画饼状图?
- 关于[UpdateModel]跟[TryUpdateModel]
- “/”应用程序中的服务器错误。 异常详细信息: System.IO.DirectoryNotFoundException: 未能找到路径“D:
- 请教各位天才: 如何在asp.net(c#)环境下实现浏览文件夹的功能???
- UITypeEditor不支持递归,各位大侠怎么解决.
(@categorycode VarChar(50),
@pagesize int,
@pageindex int,
@docount bit)
as
set nocount on
if(@docount=1)
select count(NewsID) from HtmlNews where newscolumncode =@categorycode
else
begin
declare @PageLowerBound int
declare @PageUpperBound int
set @PageLowerBound=(@pageindex-1)*@pagesize
set @PageUpperBound=@PageLowerBound+@pagesize
create table #pageindex(id int identity(1,1) not null,nid int)
set rowcount @PageUpperBound
insert into #pageindex(nid)
select NewsID from HtmlNews where newscolumncode =@categorycode order by NewsID desc
select O.NewsID,O.UserID,O.NewsTitle,O.NewsColumnCode
from HtmlNews O,#pageindex p
where O.NewsID=p.nid and p.id>@PageLowerBound and p.id<=@PageUpperBound order by p.id
end
set nocount off
GO2 同样的存储过程,不过我用的是多重select 语句的方法
CREATE procedure Pr_ListCategoryHtmlNewsWebdiyer2
(@categorycode VarChar(50),
@pagesize int,
@pageindex int,
@docount bit)
as
set nocount on
declare @where varchar(100)
set @where=" where newscolumncode =@categorycode"
declare @RecordCount int
select @RecordCount=count(NewsID) from HtmlNews where newscolumncode =@categorycode
if(@docount=1)
select @RecordCount
else
begin
if(@pageindex=1)
exec('select top '+@pagesize+'NewsID,UserID,NewsTitle,NewsColumnCode from HtmlNews'+@where+' order by NewsID desc')
else
begin
declare @PageUpperBound int
declare @endrecords int
set @PageUpperBound=@pageindex*@pagesize
if(@PageUpperBound-@pagesize)>=@RecordCount
select ''
else if(@RecordCount-(@PageUpperBound-@pagesize)<=@pagesize)
begin
set @endrecords=@RecordCount-(@PageUpperBound-@pagesize)
exec('select * from (select top '+@endrecords+' NewsID,UserID,NewsTitle,NewsColumnCode from HtmlNews'+@where+' order by NewsID)A order by NewsID desc')
end
else
exec('select * from (select top '+@pagesize+'* from (select top '+@PageUpperBound+' NewsID,UserID,NewsTitle,NewsColumnCode from HtmlNews'+@where+' order by NewsID desc)A order by NewsID)B order by NewsID desc')
end
end
set nocount off
go
这第二种方法,sqlserver检测存储过程都能通过,就是在IE中一运行,就出现
异常详细信息: System.Data.SqlClient.SqlException: 必须声明变量 '@categorycode'。而这个参数我是明明声明过的啊!
试试
注意后面是四个单引号
在吴旗娃老大的网站上 http://www.webdiyer.com/utility/procgen.aspx
分页功能使用: 1 Table变量
2 临时表
3 多重Select语句 对此控件的这三种存储过程,在使用过程中,您认为效率最高的是哪 一种呢,能说一下为什么吗?能对这三种存储过程依次做一个简单的解释吗?
同学们可以做一个简单的个人网站用来找工作
http: // www.hi876.com 你们也看看吧