Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/asp.net/30.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 无法从aspnet_用户或AspNetUsers中删除?_Sql_Asp.net_Sql Server_Localdb - Fatal编程技术网

Sql 无法从aspnet_用户或AspNetUsers中删除?

Sql 无法从aspnet_用户或AspNetUsers中删除?,sql,asp.net,sql-server,localdb,Sql,Asp.net,Sql Server,Localdb,我使用aspnet_regsql设置了一个数据库,我使用的是visual studio 2013附带的web表单模板。我正在尝试从aspnet_用户和AspNetUsers中删除。但是,我需要使用存储过程,因为我要从两个不同的表中删除。我可以从AspNetUsers删除用户,但不能从Aspnetu用户删除用户。我是否在存储过程中做了一些错误的事情使其无法工作 CREATE PROCEDURE [dbo].[DeleteAllUserReferences] @UserName

我使用aspnet_regsql设置了一个数据库,我使用的是visual studio 2013附带的web表单模板。我正在尝试从aspnet_用户和AspNetUsers中删除。但是,我需要使用存储过程,因为我要从两个不同的表中删除。我可以从AspNetUsers删除用户,但不能从Aspnetu用户删除用户。我是否在存储过程中做了一些错误的事情使其无法工作

 CREATE PROCEDURE [dbo].[DeleteAllUserReferences]
        @UserName  NVARCHAR(256),
        @Id  NVARCHAR(128),
        @Role NVARCHAR(256),
        @RowsAffected int OUTPUT
    AS BEGIN TRY
        SET NOCOUNT ON                                                 
        SET XACT_ABORT ON  
        EXEC aspnet_Users_DeleteUser 'mainwebsite',@UserName,15,@RowsAffected output
       BEGIN TRANSACTION
        DELETE FROM [AspNetUsers] WHERE Id = @Id
       COMMIT TRANSACTION
    END TRY

    BEGIN CATCH
       IF @@trancount > 0 
       ROLLBACK TRANSACTION                        
       EXEC error_handler_sp                                          
       RETURN 55555 

    END CATCH

    RETURN 0
注意:当我调用asp.net时,aspnet_Users_DeleteUser没有在asp.net中执行,而是通过visual studio中的SQL server资源管理器手动执行。编辑:我忘记了下面的错误处理程序:

CREATE PROCEDURE error_handler_sp AS

DECLARE @errmsg   nvarchar(2048),
        @severity tinyint,
        @state    tinyint,
        @errno    int,
        @proc     sysname,
        @lineno   int

SELECT @errmsg = error_message(), @severity = error_severity(),   -- 10
       @state  = error_state(), @errno = error_number(),
       @proc   = error_procedure(), @lineno = error_line()

IF @errmsg NOT LIKE '***%'                                        -- 11  
BEGIN 
   SELECT @errmsg = '*** ' + coalesce(quotename(@proc), '<dynamic SQL>') + 
                    ', ' + ltrim(str(@lineno)) + '. Errno ' + 
                    ltrim(str(@errno)) + ': ' + @errmsg
   RAISERROR(@errmsg, @severity, @state)
END
ELSE
   RAISERROR(@errmsg, @severity, @state)

事实证明,我需要将UserName字段添加到listview的DataKeyNames属性中,它可以正常工作

我忘了说我解决了这个问题。事实证明,在删除过程中,为了从数据库中删除用户,我必须在listview的DataKeyValues属性中使用用户名。