2015-06-15 45 views
-2

我要显示在用户名在我的asp.net页面有什么要求做查询或任何记录,以便帮助我显示用户名从SQL Server身份验证的用户后

CREATE PROCEDURE validate_user  
    @Username VARCHAR(20),  
     @Password VARCHAR(20)  
AS  
BEGIN  
     SET NOCOUNT ON;  
     DECLARE @UserId INT  

     select count(*)from UserArtTable where UserName = @Username and passwd = @Password  
End 

我这个存储过程只验证用户是否存在 我想要的是,如果用户存在,那么他/她的用户名,我已经存储在数据库中应填充在asp.net页面 什么代码我必须写在C#或在客户端与jquery我卡在这里。我根本没有线索 我在3层工作,你能帮我这个吗?

回答

0

在C#你可以按照以下步骤来显示用户名:通过使用你上述

  • 提到的存储的过程使用另一PROC如下获得从数据库中的用户

    1. 验证的用户名(XXX):
     
        CREATE PROCEDURE get_user  
        @Username VARCHAR(20)  
        AS  
        BEGIN  
         SET NOCOUNT ON;  
         DECLARE @UserId INT  
    
         select * from UserArtTable where UserName = @Username 
        End 
    
  • 现在使用从数据库得到了USENAME显示要
  • 在页面上

    这是一个广义的解决方案,你需要创建在C#以下方法:

    1. 布尔的ValidateUser(用户名字符串,字符串密码)
    2. UserObject的getUser(用户名字符串)
    +0

    什么是写另一个sp ...?如果使用,那么如何在同一时间点击同一时间在一个连接中调用两个存储过程 – Kamran

    +0

    这完全是关于分离问题。我的观点是,最好将'ValidateUser'从'GetUser'中分离出来。 – ManP

    0

    您正在从存储过程中获取计数。所以,刚刚获得通过ExecuteScalar()ExecuteNonQuery()结果,并将计数的检查是这样的:

    ... 
        int countResult = ExecuteNonScalar(); 
    
        if(countResult > 0) 
        { 
         Display(userName); 
         //userName here is the same that you have passed to your Stored Procedure. 
        } 
    
    1

    我们可以使用输出参数的存储过程,从单个查询返回的用户名。使用这个存储过程。

     CREATE PROCEDURE validate_user  
         @Username VARCHAR(20),  
         @Password VARCHAR(20), 
         @UsernameOutput VARCHAR(20) output 
        AS  
        BEGIN  
          SET NOCOUNT ON;  
        declare @test int 
         select @test=count(*) from UserArtTable where UserName = @Username and passwd = @Password 
         if(@test>0) 
          select @UsernameOutput=UserName from UserArtTable where UserName = @Username and passwd = @Password 
        End 
    

    通常情况下,在实际情况下,我们将有两个存储过程一个用于验证证书和一个加载登录后用户信息。如果这是您的要求,请使用上面的代码。

    这应该适合你。如果是的话请标记为答案

    +0

    已更新。此代码应该适用于您 – staticvoidmain