zoukankan      html  css  js  c++  java
  • aspnet_Membership_FindUsersByEmail

    ALTER  PROCEDURE dbo.aspnet_Membership_FindUsersByEmail
        
    @ApplicationName       NVARCHAR(256),
        
    @EmailToMatch          NVARCHAR(256),
        
    @PageIndex             INT,
        
    @PageSize              INT
    AS
    BEGIN
        
    DECLARE @ApplicationId UNIQUEIDENTIFIER
        
    SELECT  @ApplicationId = NULL
        
    SELECT  @ApplicationId = ApplicationId FROM dbo.aspnet_Applications WHERE LOWER(@ApplicationName= LoweredApplicationName
        
    IF (@ApplicationId IS NULL)
            
    RETURN 0

        
    -- Set the page bounds
        DECLARE @PageLowerBound INT ---开始显示的记录
        DECLARE @PageUpperBound INT ---结束显示的记录(用下面的算就知道了)
        DECLARE @TotalRecords   INT ---总记录数
        SET @PageLowerBound = @PageSize * @PageIndex
        
    SET @PageUpperBound = @PageSize - 1 + @PageLowerBound

        
    -- Create a temp table TO store the select results
        --创建一个临时表存储查询出的结果
        CREATE TABLE #PageIndexForUsers
        (
            IndexId 
    int IDENTITY (01NOT NULL,
            UserId 
    UNIQUEIDENTIFIER
        )

        
    -- Insert into our temp table
        --为临时表插数据
        IF@EmailToMatch IS NULL )
            
    INSERT INTO #PageIndexForUsers (UserId)
                
    SELECT u.UserId
                
    FROM   dbo.aspnet_Users u, dbo.aspnet_Membership m
                
    WHERE  u.ApplicationId = @ApplicationId AND m.UserId = u.UserId AND m.Email IS NULL
                
    ORDER BY m.LoweredEmail
        
    --如果邮件地址为空,则选出所有用户放如临时表
        ELSE
            
    INSERT INTO #PageIndexForUsers (UserId)
                
    SELECT u.UserId
                
    FROM   dbo.aspnet_Users u, dbo.aspnet_Membership m
                
    WHERE  u.ApplicationId = @ApplicationId AND m.UserId = u.UserId AND m.LoweredEmail LIKE LOWER(@EmailToMatch)
                
    ORDER BY m.LoweredEmail
        
    --如果不为空,则查询具有相似地址的用户放入临时表
        SELECT  u.UserName, m.Email, m.PasswordQuestion, m.Comment, m.IsApproved,
                m.CreateDate,
                m.LastLoginDate,
                u.LastActivityDate,
                m.LastPasswordChangedDate,
                u.UserId, m.IsLockedOut,
                m.LastLockoutDate
        
    FROM   dbo.aspnet_Membership m, dbo.aspnet_Users u, #PageIndexForUsers p
        
    WHERE  u.UserId = p.UserId AND u.UserId = m.UserId AND
               p.IndexId 
    >= @PageLowerBound AND p.IndexId <= @PageUpperBound
        
    ORDER BY m.LoweredEmail
        
    /*三表连接通过USERID,临时表的自动增长列主要用来控制显示数的.这个好象用于分页.
            若不考虑分页,可不用临时表.
    */

        
    SELECT  @TotalRecords = COUNT(*--查询总记录数
        FROM    #PageIndexForUsers
        
    RETURN @TotalRecords
    END
  • 相关阅读:
    Windows 7目录
    用wubi安装的Ubuntu在重装Windows 7系统后,如何恢复(转)
    用java查询HBase中某表的一批数据
    hbase数据模型以及编码压缩(转)
    应用Flume+HBase采集和存储日志数据
    HBase性能调优(转)
    【剑指Offer学习】【面试题50:树中两个结点的最低公共祖先】
    [Phonegap+Sencha Touch] 移动开发24 打包wp8.1的App,执行时输入框聚焦弹出软键盘之后,界面上移而不恢复原位的解决的方法
    写在课程设计之后
    String内存溢出异常(错误)可能的原因及解决方式
  • 原文地址:https://www.cnblogs.com/ruanbl/p/490046.html
Copyright © 2011-2022 走看看