我想在我的asp.net页面上显示登录的用户名是什么查询或任何必要的操作帮助我
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 :(得分: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
通常,在实际情况中,我们将有两个存储过程,一个用于验证凭据,另一个用于在登录后加载用户信息。如果这是您的要求,请使用上面的代码。
这对你有用。如果确实请将其标记为答案。
答案 1 :(得分:0)
在C#中,您可以按照以下步骤显示用户名:
CREATE PROCEDURE get_user @Username VARCHAR(20) AS BEGIN SET NOCOUNT ON; DECLARE @UserId INT select * from UserArtTable where UserName = @Username End
这是一个通用解决方案,您需要在C#中创建以下方法:
答案 2 :(得分:0)
您正在从存储过程中获取计数。因此,只需按ExecuteScalar()
或ExecuteNonQuery()
获取结果,然后像这样检查计数:
...
int countResult = ExecuteNonScalar();
if(countResult > 0)
{
Display(userName);
//userName here is the same that you have passed to your Stored Procedure.
}