login.cs  :
            SqlStr = "select pid,UPwd ,uname from [user] where pid=@pid and upwd=@upwd";
            SqlDataAdapter sda1 = new SqlDataAdapter(SqlStr, oCon);            SqlCommand comm = new SqlCommand(SqlStr, oCon);
            SqlParameter parm1 = new SqlParameter("@pid", SqlDbType.VarChar, 50);
            parm1.Value = Name.Text;
            SqlParameter parm2 = new SqlParameter("@upwd", SqlDbType.VarChar, 50);
            parm2.Value = PassWord.Text;
            comm.Parameters.Add(parm1);
            comm.Parameters.Add(parm2);
            SqlDataReader sdr = comm.ExecuteReader();
表:
       User             
             PID(varchar(50),not null)
             UName(varchar(50),not null)
             Upwd(varchar(50),not null)
       数据:
            00001   张三    0
            00002   李四    0已知:登陆时输入用户名(如00001),密码(如0)即可成功登陆
请问不修改程序和表,怎么写存储过程来实现管理员登陆  (admin ,0)  

解决方案 »

  1.   

    create proc Sp_Login --'1'表示登陆成功,'0'表示登陆部成功
    @pid varchar(20),
    @upwd varchar(20)
    as
    if exists(select pid,UPwd ,uname from [user] where pid=@pid and upwd=@upwd)
    select '1'
    else
    select '0'
      

  2.   

    谢谢。我是菜鸟,请问管理员用户名和密码(admin ,0)是从哪里设的?必须select么?            SqlStr = "select pid,UPwd ,uname from [user] where pid=@pid and upwd=@upwd";
                SqlDataAdapter sda1 = new SqlDataAdapter(SqlStr, oCon);            SqlCommand comm = new SqlCommand(SqlStr, oCon);
                SqlParameter parm1 = new SqlParameter("@pid", SqlDbType.VarChar, 50);
                parm1.Value = Name.Text;
                SqlParameter parm2 = new SqlParameter("@upwd", SqlDbType.VarChar, 50);
                parm2.Value = PassWord.Text;
                comm.Parameters.Add(parm1);
                comm.Parameters.Add(parm2);
                SqlDataReader sdr = comm.ExecuteReader();            while (sdr.Read() && this.Name.Text == "admin")
               {
                  。
                }