Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/sql/68.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Sql 获取错误“将nvarchar值“egt1egt”转换为数据类型int时转换失败。”_Sql_Sql Server - Fatal编程技术网

Sql 获取错误“将nvarchar值“egt1egt”转换为数据类型int时转换失败。”

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

我创建了一个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_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。除了返回语句外,代码是相同的。可能会出现什么问题?您已在开始时启动事务,但未调用提交或回滚