Sql 获取错误“将nvarchar值“egt1egt”转换为数据类型int时转换失败。”
我创建了一个sql过程来返回与用户名关联的密码 SQL过程:Sql 获取错误“将nvarchar值“egt1egt”转换为数据类型int时转换失败。”,sql,sql-server,Sql,Sql Server,我创建了一个sql过程来返回与用户名关联的密码 SQL过程: USE [C:\INETPUB\WWWROOT\ADDMARKER\MAP\MAP\APP_DATA\ASPNETDB.MDF] GO /****** Object: StoredProcedure [dbo].[aspnet_Membership_EmailPassword] Script Date: 10/18/2012 15:32:02 ******/ SET ANSI_NULLS ON GO SET QUOTED_ID
USE [C:\INETPUB\WWWROOT\ADDMARKER\MAP\MAP\APP_DATA\ASPNETDB.MDF]
GO
/****** Object: StoredProcedure [dbo].[aspnet_Membership_EmailPassword] Script Date: 10/18/2012 15:32:02 ******/
SET ANSI_NULLS ON
GO
SET QUOTED_IDENTIFIER ON
GO
-- =============================================
-- Author: <Author,,Name>
-- Create date: <Create Date,,>
-- Description: <Description,,>
-- =============================================
ALTER PROCEDURE [dbo].[aspnet_Membership_EmailPassword]
-- Add the parameters for the stored procedure here
(
@UserName nvarchar(256),
@PasswordReturn nvarchar(128) out
)
AS
BEGIN
-- SET NOCOUNT ON added to prevent extra result sets from
-- interfering with SELECT statements.
DECLARE @UserId uniqueidentifier
DECLARE @Password nvarchar(128)
DECLARE @Return_Password nvarchar(256)
DECLARE @IsLockedOut bit
DECLARE @ErrorCode int
SET @ErrorCode = 0
DECLARE @TranStarted bit
SET @TranStarted = 0
SET NOCOUNT ON;
IF( @@TRANCOUNT = 0 )
BEGIN
BEGIN TRANSACTION
SET @TranStarted = 1
END
ELSE
SET @TranStarted = 0
SELECT @UserId = u.UserId,
@Password = m.Password,
@IsLockedOut = m.IsLockedOut
FROM dbo.aspnet_Users u, dbo.aspnet_Membership m WITH ( UPDLOCK )
WHERE u.UserId = m.UserId AND
LOWER(@UserName) = u.LoweredUserName
IF ( @@rowcount = 0 )
BEGIN
SET @ErrorCode = 1
END
IF( @IsLockedOut = 1 )
BEGIN
SET @ErrorCode = 99
END
IF(Not( @ErrorCode = 0) )
set @PasswordReturn = 'Error in search'
ELSE
set @PasswordReturn = @Password
RETURN @PasswordReturn
END
我犯了一个错误
Msg 245,16级,状态1,程序aspnet_会员资格_电子邮件密码,第59行
将nvarchar值“egt1egt”转换为数据类型int时,转换失败
在执行该程序时
请问有谁能帮忙吗
谢谢Return只能返回一个int,它是过程的返回值
当您退出该过程时,输出参数将自动返回,因此请删除该行
RETURN @PasswordReturn
有关输出参数和返回值之间差异的详细说明,请参见!!那么,我如何传递从这个过程中获得的密码呢?我想在ASP.net程序中输入密码。抱歉,我是SQL server编程新手它将位于@PasswordReturn参数中。我现在又收到一个错误:Msg 266,级别16,状态2,过程aspnet\u Membership\u EmailPassword,执行后的第0行事务计数表示BEGIN和COMMIT语句的数量不匹配。上一次计数=0,当前计数=1。除了返回语句外,代码是相同的。可能会出现什么问题?您已在开始时启动事务,但未调用提交或回滚