当前位置: 代码迷 >> Sql Server >> 调用这个存储过程的时分,有一返回值为空,百思不得其解
  详细解决方案

调用这个存储过程的时分,有一返回值为空,百思不得其解

热度:210   发布时间:2016-04-27 11:53:24.0
调用这个存储过程的时候,有一返回值为空,百思不得其解
这是存储过程:
create proc check_username
@usercode char(16)
as
declare @retcode int , @retdesc char(80)
select @retcode=-999,@retdesc='用户名已存在'

if exists(select 1 from tbl_user where [email protected])
begin
select @retcode=1,@retdesc='用户名已存在'
end
else
begin
select @retcode=0,@retdesc='用户名可以使用'
end

select @retcode as retcode,@retdesc as retdesc



调用之后我用rs.getInt("retcode"),提示我retcode为无效的列名,求解.

------解决方案--------------------
SQL code
gocreate proc check_username@usercode char(16)asdeclare @retcode int , @retdesc char(80)select @retcode=-999,@retdesc='用户名已存在'if exists(select 1 from tracy where [AZWZ][email protected])beginselect @retcode=1,@retdesc='用户名已存在'endelsebeginselect @retcode=0,@retdesc='用户名可以使用'endselect @retcode as retcode,@retdesc as retdescexec check_username '22153回风巷'/*retcode    retdesc1    用户名已存在                                                                    */--用我本机上的一个数据表tracy做了一下测试,没有任何问题应该是你在乘虚端调用的时候出错,从报错信息来看,应该是参数没传对,比如说格式多加或者少加引号
------解决方案--------------------
探讨
这是存储过程:
create proc check_username
@usercode char(16)
as
declare @retcode int , @retdesc char(80)
select @retcode=-999,@retdesc='用户名已存在'

if exists(select 1 from tbl_user where [email protected]

------解决方案--------------------
探讨

引用:
这是存储过程:
create proc check_username
@usercode char(16)
as
declare @retcode int , @retdesc char(80)
select @retcode=-999,@retdesc='用户名已存在'

if exists(select 1 from tbl_user wher……

------解决方案--------------------
存储过程是没问题
可能是你获取存储过程返回的结果集中的某一列值有问题
试试下面这种调用
C#
C# code
Convert.ToInt32(ds.Tables[0].Rows[0]["retcode"].ToString());
  相关解决方案