当前位置:编程学习 > C#/ASP.NET >>

请问这个存储过程错在哪,查不出数据。

CREATE PROC GetByType
(
@counts int,
@type nvarchar(8) 
)
as
exec('
select top  '+@counts+' r.ID,r.[Title],r.AddDate,
       g.RegionName 
from Rent as r,Region as g
where r.RegionID=g.RegionID and r.RentType= '+@type+'  
order by r.AddDate desc,r.ID desc
')
GO
请问这个存储过程错在哪,查不出数据。谢谢!!!! --------------------编程问答-------------------- 大大大大大大大大大大大 --------------------编程问答-------------------- 语法应该没什么错误,建议检查一下数据,这样的条件是否有存在的数据! --------------------编程问答-------------------- +@counts+' r.ID

这里有问题吧 --------------------编程问答-------------------- r.id那里没错。错在RentType= '+@type+'  ,它把@type当成列了,说列名无效。
找到了。RentType= '+@type+'  --->RentType= '''+@type+'''
太久没写给忘了。呵呵。  
--------------------编程问答-------------------- where r.RegionID=g.RegionID and r.RentType= '+@type+'  
order by r.AddDate desc,r.ID desc 


应该是

where r.RegionID=g.RegionID and r.RentType= '''+@type+'''  
order by r.AddDate desc,r.ID desc 


用两个''表示一个' --------------------编程问答-------------------- 怎么都在把存储过程当sql语句来拼哟?
冒这么多单引号出来?
补充:.NET技术 ,  ASP.NET
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,