关于存储过程中有写字段报列名无效的问题!

本文分享了一个SQL存储过程的调试经历,解决了数据无法正确显示在GridView上的问题。通过对比两个存储过程,作者找到了关键区别并成功修复了问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

我是初学者,想把碰到的问题发表一下,以便我们初学者学习!

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后面的参数要和上面的一致!

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值