dataGridView1不显示指定表中的数据

时间:2018-07-19 15:16:33

标签: c# sql asp.net ado.net

  

该代码块应该是注册表格。项目有几个   表格需要相互连接。当您运行项目时   LOGIN表单首先出现在屏幕上,其两个文本框标记为   作为(用户名,密码)和两个按钮(登录,注册)。之后   注册过程,该过程会通过“插入” 发送您的所有信息   命令输入数据库的 USERStable 中,您必须输入   将“用户名”和“密码”正确插入显示的文本框中,   它们应与以下“ GetString(1)”和“ GetString(2)”匹配,并且   然后按“注册”按钮bam,您应该具有“联系表格”   在屏幕上弹出。联系人表单具有一个dataGridView,它是   应该显示 USERStable 的所有行。为了   防止用户使用错误的用户名和密码进入   while循环内的语句。可以,但是当您进入时,   dataGridVew不显示任何信息。但是,如果没有while循环,它确实可以。   我不知道问题出在哪里。你有什么   建议?

     

我忘了指出的一件事。我还创建了一个名为USERS的类,   字段和属性:

     

字符串用户名;

     

字符串密码;

     

在顶部,您可以看到我已经创建了一个引用为“ us”的对象。

public partial class LOGIN : Form
    {
        public LOGIN()
        {
            InitializeComponent();
        }
USERS us = new USERS();
 private void button1_Click(object sender, EventArgs e)
            {
               CONTACTS contact = new CONTACTS(); //FORM CONTACT
                SqlConnection con = new SqlConnection();
                con.ConnectionString = @"Data Source = DESKTOP-9I0BNAS\SQLEXPRESS; Initial Catalog = CAVID; Integrated Security = True";
                con.Open();

                SqlCommand cmd = new SqlCommand("Select * FROM  users", con);

                if (con.State == ConnectionState.Closed)
                {
                    con.Open();
                }


                SqlDataReader dr = cmd.ExecuteReader();
                DataTable dataTable = new DataTable();

                while (dr.Read())
                {
                    us.Username = dr.GetString(1);
                    us.Password = dr.GetInt32(2).ToString();
                    if(us.Username == textBox1.Text &&
                          us.Password == textBox2.Text)

                    {
                        contact.Show();
                        dataTable.Load(dr);
                        contact.dataGridView1.DataSource = dataTable;            
                        this.Hide();
                        break;
                    }

                }         
            }
        }

0 个答案:

没有答案