你的Web.config中并没有用户名和密码,所以你总是能访问数据库,da.Read()总是满足啊

解决方案 »

  1.   

    不能断点调试吗?   if (dr.Read()==da.Read() )  要是数据库出问题  这两个地方都出问题 那还是满足条件,  所以一直能登陆
      

  2.   


    public SqlDataReader show(string name,string password)String sql = string.Format("select 编号 from 学生表 where 姓名='{0}' AND 编号 = '{1}'", name,password);SqlDataReader dr = dal.show(TextBox1.Text,TextBox2.Text);           if (dr.Read() != null )
                {
                    Response.Redirect("1.aspx");
                }
                else
                {
                    Response.Write("用户名与密码不一致");
                }
      

  3.   

    新手就去看看SqlDataReader怎么用的
      

  4.   


    第一,在你的 connection string 里面,用的是 windows 验证 (Integrated Security=True)。所以在任何情况之下都能够打开数据库。账户密码是多余的。
    第二,由于在任何情况之下都能够打开数据库,所以在任何情况之下 “dr.Read() != null” 都是成立的
    最终,你永远去不了 “Response.Write("用户名与密码不一致");建议你补习一下数据库 的基本知识,不是你想象中那样工作的。
      

  5.   

    他这跟连接字符串根本没关系了。楼主指的用户名密码是他自己数据库表中的字段。登录的sql也不会像你这样写啊,逻辑都不对。将用户名(TextBox1.Text)密码(TextBox2.Text)都带到show方法的参数中了。建议楼主找书,找别人代码看看
      

  6.   

      string sql = @"select * from iess01h(nolock) where pr_name='"+this.txtuserid.Text.Trim()+"'";
                using (SqlConnection conn = new SqlConnection(DBHelper.connstr))
                {
                    SqlCommand comm = new SqlCommand(sql,conn);
                    SqlDataAdapter adapter = new SqlDataAdapter(comm);
                    DataSet ds = new DataSet();
                    adapter.Fill(ds);
                    if (ds.Tables[0].Rows.Count > 0)
                    {
                        if (ds.Tables[0].Rows[0]["pr_psword"].ToString() == this.txtuserpassword.Text.Trim())
                        {
                            Main.loginUser = this.txtuserid.Text.Trim() + "(" + ds.Tables[0].Rows[0]["pr_fname"].ToString() + ")";
                            this.Close();
                        }
                        else
                        {
                            this.txtuserpassword.SelectAll();
                            tt.ToolTipIcon = ToolTipIcon.Error;
                            tt.Show("  密碼錯誤,請重新輸入  ", txtuserpassword, 2000);
                        }
                    }
                    else
                    {
                        this.txtuserid.SelectAll();
                        tt.ToolTipIcon = ToolTipIcon.Error;
                        tt.Show("  目前沒有該帳號 "+txtuserid.Text.Trim()+" 的登錄權限  ", txtuserid, 2000);
                    }
                }