是一个登录界面:存储过程
--处理用户登录事件
CREATE proc sm_login_user
@username varchar(50),
@pwd varchar(50)As
begin
select
@username=username
from
Users
where
UserName=@username and Password=@pwd
--如果用户未注册
if @@ROWCOUNT<1
select @username='no'
end
GO
我定义的一个类,其中处理用户登录的函数是:
public string UserLogin(string username,string pwd,string type)
{
SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
SqlCommand myCommand = new SqlCommand("sm_login_user",myConnection);
myCommand.CommandType = CommandType.StoredProcedure; SqlParameter prmUserName = new SqlParameter("@username",SqlDbType.VarChar,50);
prmUserName.Value = username;
myCommand.Parameters.Add(prmUserName);return prmUserName.Value.ToString();?如果用户存在可以返回用户名,但是用户不存在就不能返回“no”,而是返回"",如何编写才能使用户存在时返回用户名,不存在时返回“no”?谢谢!
--处理用户登录事件
CREATE proc sm_login_user
@username varchar(50),
@pwd varchar(50)As
begin
select
@username=username
from
Users
where
UserName=@username and Password=@pwd
--如果用户未注册
if @@ROWCOUNT<1
select @username='no'
end
GO
我定义的一个类,其中处理用户登录的函数是:
public string UserLogin(string username,string pwd,string type)
{
SqlConnection myConnection = new SqlConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
SqlCommand myCommand = new SqlCommand("sm_login_user",myConnection);
myCommand.CommandType = CommandType.StoredProcedure; SqlParameter prmUserName = new SqlParameter("@username",SqlDbType.VarChar,50);
prmUserName.Value = username;
myCommand.Parameters.Add(prmUserName);return prmUserName.Value.ToString();?如果用户存在可以返回用户名,但是用户不存在就不能返回“no”,而是返回"",如何编写才能使用户存在时返回用户名,不存在时返回“no”?谢谢!
select @username='no'
end
把这个改成
if @@ROWCOUNT<1
set @username='no'
end
试试看
这句搞复杂点,加个判断,若空返回""
为什么不写成 @username=username
from
Users
where
UserName=@username and Password=@pwd
--如果用户未注册
if @@ROWCOUNT<1
select 'no'
end
@username varchar(50),
@pwd varchar(50)As
IF EXISTS(select username from Users where UserName=@username and Password=@pwd)
select @username=username from Users where UserName=@username and Password=@pwd
--如果用户未注册
ELSE
select @username='no'GO