存储过程为什么返回值为空?

meixqhi 2010-01-01 08:01:11
我的存储过程如下:
create procedure usp_CheckUserLogin
(@rdID int,
@rdPwd varchar(10),
@rdType smallint,
@login_successed int output)
as
begin
select *from [reader] where rdID=@rdID and rdPwd=@rdPwd and rdType=@rdType
if(@@Rowcount<1)
select @login_successed=-1;
else
select @login_successed=1;
end

我执行存储过程的式子如下:
declare @return int
exec [usp_CheckUserLogin] 1001,'456',2,@return
print 'wangzhen:' + @return
go
查询出的数据如下,
1001 科比 456 0 2 学生 6612345 453336335@qq.com 2007-09-09 00:00:00.000 2

消息如下,但就没有@return返回值
(1 行受影响)
消息 245,级别 16,状态 1,第 3 行
在将 varchar 值 'wangzhen:' 转换成数据类型 int 时失败。
...全文
209 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
wuyq11 2010-01-01
  • 打赏
  • 举报
回复

cast(@return as varchar)
xjzihan 2010-01-01
  • 打赏
  • 举报
回复
@return变量是int型,用print打印输出时,varchar与别的类型拼接时,要把其他类型转换成varchar类型。把@return变量转换为varchar类型试试
Snowdust 2010-01-01
  • 打赏
  • 举报
回复
存储过程本身没有错,错在调用,把这段:
declare @return int 
exec [usp_CheckUserLogin] 1001,'456',2,@return
print 'wangzhen:' + @return
go

改成:
declare @return int 
exec [usp_CheckUserLogin] 1001,'456',2,@return
print 'wangzhen:' + Cast(@return As varchar(10))
go
meixqhi 2010-01-01
  • 打赏
  • 举报
回复
还有消息中说在将‘wangzhen’转换为int型时失败,也不知道为什么,望指教

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧