为什么查出来的UserID是varchar型我定义的是int型啊 报错varchar转int失败。

来源:百度知道 编辑:UC知道 时间:2024/06/25 05:47:17
set ANSI_NULLS ON
set QUOTED_IDENTIFIER ON
GO
ALTER PROCEDURE [dbo].[proc_UserTestByNameAndPwd]
@userID int output,
@UserName varchar(50),
@UserPassword varchar(20)

AS
BEGIN
SELECT @userID=UserID FROM Users WHERE UserName=@UserName and Password=@UserPassword

END
UserID字段我定义的是int型

因为你的Users表里边的UserID是varchar字段类型,你用int输出,肯定会报错的,这需要在输出之前做一下转换才可以的:

ALTER PROCEDURE [dbo].[proc_UserTestByNameAndPwd]
@userID int output,
@UserName varchar(50),
@UserPassword varchar(20)

AS
BEGIN
SELECT @userid=CAST(UserID as int) FROM Users WHERE UserName=@UserName and Password=@UserPassword

END