是一个登录界面:存储过程
--处理用户登录事件
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”?谢谢!

解决方案 »

  1.   

    if @@ROWCOUNT<1
           select @username='no'
       end
    把这个改成
       if @@ROWCOUNT<1
           set @username='no'
       end
    试试看
      

  2.   

    return prmUserName.Value.ToString();
    这句搞复杂点,加个判断,若空返回""
      

  3.   

    这个类是不是没有贴全哦....
    为什么不写成            @username=username
         from 
               Users
         where
               UserName=@username and Password=@pwd
    --如果用户未注册     
       if @@ROWCOUNT<1
           select 'no'
       end
      

  4.   

    TryCREATE proc sm_login_user
      @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