Asp.net 字符串返回类型为的存储过程中出错

Asp.net 字符串返回类型为的存储过程中出错,asp.net,sql-server,stored-procedures,Asp.net,Sql Server,Stored Procedures,此存储过程引发错误: 将varchar值“Saurav”转换为数据类型int时,转换失败 SP似乎没有与错误相关的错误代码,您是否可以很好地检查传递给存储过程的参数(即它们的顺序和类型)?问题可能是您正在传递的值,而不是实际的过程 您是否可以将调用存储过程时使用的代码附加到帖子中?SP似乎没有与错误相关的错误代码,您是否可以检查传递给存储过程的参数(即它们的顺序和类型)?问题可能是您正在传递的值,而不是实际的过程 您是否可以将调用存储过程时使用的代码附加到帖子中?您确定它是varchar列吗 A

此存储过程引发错误:

将varchar值“Saurav”转换为数据类型int时,转换失败


SP似乎没有与错误相关的错误代码,您是否可以很好地检查传递给存储过程的参数(即它们的顺序和类型)?问题可能是您正在传递的值,而不是实际的过程


您是否可以将调用存储过程时使用的代码附加到帖子中?

SP似乎没有与错误相关的错误代码,您是否可以检查传递给存储过程的参数(即它们的顺序和类型)?问题可能是您正在传递的值,而不是实际的过程


您是否可以将调用存储过程时使用的代码附加到帖子中?

您确定它是
varchar
列吗

ALTER PROCEDURE [dbo].[Signin_Check] 
    @uid varchar(50), @pwd varchar(50), @uname varchar(50) output
AS
   IF EXISTS (SELECT * FROM threeLayer_user WHERE uid = @uid and pass = @pwd)
   BEGIN
      -- SET NOCOUNT ON added to prevent extra result sets from
      -- interfering with SELECT statements.
      SET NOCOUNT ON;

      SELECT @uname = name 
      FROM threeLayer_user 
      WHERE uid = @uid and pass = @pwd

      RETURN @uname
   END

您确定它是
varchar
列吗

ALTER PROCEDURE [dbo].[Signin_Check] 
    @uid varchar(50), @pwd varchar(50), @uname varchar(50) output
AS
   IF EXISTS (SELECT * FROM threeLayer_user WHERE uid = @uid and pass = @pwd)
   BEGIN
      -- SET NOCOUNT ON added to prevent extra result sets from
      -- interfering with SELECT statements.
      SET NOCOUNT ON;

      SELECT @uname = name 
      FROM threeLayer_user 
      WHERE uid = @uid and pass = @pwd

      RETURN @uname
   END

您的代码包含该行

@uid varchar(50) / int
uid = @uid
return语句只能接受整数值。但是,@uname参数是一个输出参数,因此不需要同时返回它。只要确保在调用存储过程时指定
OUTPUT

return @uname

您的代码包含该行

@uid varchar(50) / int
uid = @uid
return语句只能接受整数值。但是,@uname参数是一个输出参数,因此不需要同时返回它。只要确保在调用存储过程时指定
OUTPUT

return @uname

表上的数据类型是什么?表上的数据类型是什么?