我是初学者,想把碰到的问题发表一下,以便我们初学者学习!
CREATE proc SP_PbFYall
@pagesize int,
@pageindex int,
@PB_IntDate varchar(50),
@PB_OutDate varchar(50)
as
declare @str varchar(2000)
declare @count int
begin
select @count=count(*) from KQ_PB
set @str='select top '+convert(varchar,@pagesize)+' pb.ID,pb.RID,ryb.RY_XM,ryb.RY_BM,bm.BMMC,pb.UID,pb.PB_MC,bclx.SXBMC,pb.PB_IntDATE,pb.PCID,pb.SYSDATE
from KQ_PB as pb, KQ_RYB as ryb,KQ_BCLX as bclx,KQ_BM as bm where pb.RID=ryb.ID and pb.PB_MC=bclx.ID and ryb.RY_BM=bm.BMID and pb.PB_IntDate>="'+@PB_IntDate+'"
and pb.PB_IntDate<="'+@PB_OutDate+'" and pb.ID not in (select top '+convert(varchar,(@pageindex-1)*@pagesize)+' ID from KQ_PB) order by ryb.RY_XM'
end
exec (@str)
GO
主要就是这里"'+@PB_IntDate+'","'+@PB_OutDate+'",应该改成双单引号('')而不是一单一双引号(' ")。
但是出现的查询出来数据不显示在GridView上。。。。。。正在解决。。。。
经过分析已经解决问题:
CREATE proc SP_PbFYall
@PageSize int,
@PageIndex int,
@PB_IntDate varchar(50),
@PB_OutDate varchar(50),
@like nvarchar(200)
as
declare @str varchar(2000)
declare @count int
begin
set @str='select top '+convert(varchar,@PageSize)+' pb.ID,pb.RID,ryb.RY_XM,ryb.RY_BM,pb.PB_MC,bclx.SXBMC,pb.PB_IntDATE,pb.PCID,pb.SYSDATE
from KQ_PB as pb, KQ_RYB as ryb,KQ_BCLX as bclx where pb.RID=ryb.ID and pb.PB_MC=bclx.ID and pb.PB_IntDate>= ''+@PB_IntDate+'' and pb.PB_IntDate<= ''+@PB_OutDate+'' and ryb.RY_XM like ''%'+@like+'%''
and pb.ID in (select top '+convert(varchar,(@PageIndex-1)*@PageSize)+' pb.ID
from KQ_PB as pb, KQ_RYB as ryb,KQ_BCLX as bclx where pb.RID=ryb.ID and pb.PB_MC=bclx.ID and pb.PB_IntDate>= ''+@PB_IntDate+'' and pb.PB_IntDate<= ''+@PB_OutDate+'' and ryb.RY_XM like ''%'+@like+'%'') order by ryb.RY_XM'
end
exec (@str)
GO
请看这2个存储过程有什么不同,就是in后面的参数要和上面的一致!