textBox1.Text == reader.Rows[0]["loginID"].ToString()只能访问数据库的第一行   怎样访问数据库的全部信息?
请各位大佬帮帮忙  谢谢!

解决方案 »

  1.   

    textBox1.Text == reader.Rows[0]["loginID"].ToString() Rows[0] 是取第一行  遍历所有行就是全部数据了
      

  2.   

     if (textBox1.Text == reader.Rows[0]["loginID"].ToString() && textBox2.Text == reader.Rows[0]["passWord"].ToString())
                        {
                            Main m1 = new Main();
                            m1.Show();
                            this.Hide();
                          
                        }
                        else
                        {
                            Lose m2 = new Lose();
                            m2.Show();
                            System.Threading.Thread.Sleep(2000);
                            m2.Close();                    }
    这是我的代码
      

  3.   

    bool b = false;
    while (reader.Read())
    {
    if (textBox1.Text == reader.Rows[0]["loginID"].ToString() && textBox2.Text == reader.Rows[0]["passWord"].ToString())
    {
    b = true;
    break;
    }
    }
    if (b)
                        {
                            Main m1 = new Main();
                            m1.Show();
                            this.Hide();
                          
                        }
                        else
                        {
                            Lose m2 = new Lose();
                            m2.Show();
                            System.Threading.Thread.Sleep(2000);
                            m2.Close();                    }
      

  4.   

    private void button1_Click(object sender, EventArgs e)
            {
              
                string sql = "select * from ManInfo";
                DataTable reader = DBHelper.GetDataTable(sql);
                if (string.IsNullOrWhiteSpace(textBox1.Text) || string.IsNullOrWhiteSpace(textBox2.Text))
                {
                    Null m3 = new Null();
                    m3.Show();     
                    this.Hide();
                }
                else
                {
                    if (textBox1.Text == reader.Rows[0]["loginID"].ToString() && textBox2.Text == reader.Rows[0]["passWord"].ToString())
                    {
                        Main m1 = new Main();
                        m1.Show();
                        this.Hide();
                    }
                    else
                    {
                        Lose m2 = new Lose();
                        m2.Show();                  
                        this.Hide();
                    }
                }   
            }
    这是我给button控件写的代码,只能读取数据库第一行,不知道怎样根据你的改   
      

  5.   

    你把数据表所有的在text显示,视觉效果多差
      

  6.   

    改成:for (int i =0;i<reader.Rows.Count;i++)
    {
        if (textBox1.Text == reader.Rows[i]["loginID"].ToString() && textBox2.Text == reader.Rows[i]["passWord"].ToString())
                    {
                        Main m1 = new Main();
                        m1.Show();
                        this.Hide();
                        return;
                    }
    elseif (i ==1){ //这个elseif不是必须的,而是给你调试用的,比如你登陆了第二行,可是第二行却没有正确登陆,那么你设置i==1,就可以看到第二行读取到的数据是什么样了但是,更加正确的做法是直接断点后查看监视数据
        if (textBox1.Text != reader.Rows[i]["loginID"].ToString() {
        MessageBox.Show($"当前登陆帐号{textBox1.Text},读取帐号{reader.Rows[i]["loginID"].ToString()},数据不符合")
        }
    else if (textBox2.Text != reader.Rows[i]["passWord"].ToString() {
        MessageBox.Show($"当前登陆密码{textBox2.Text},读取密码{reader.Rows[i]["passWord"].ToString()},数据不符合")
        }
    }
    }
    Lose m2 = new Lose();
                        m2.Show();                  
                        this.Hide();