如何在组合框选中项目的数据库中插入文本框值?

时间:2016-11-08 10:51:00

标签: c#

我设计了一个登录表单,并使用了combobox1,textbox1,textbox2和button。当我在组合框中选择“Admin”时,如果用户名和密码正确,则在textbox1和textbox2中的用户名和密码将从数据库的Admin表中检查,然后显示Admin Form。

我该怎么做?

代码:

private void button1_Click(object sender, EventArgs e) 
{ 
    if (comboBox1.SelectedText == "Admin") 
    { 
        SqlCommand cmd = new SqlCommand("select * from Admin");
        SqlDataReader dr = cmd.ExecuteReader(); 

        if (dr.Read()) 
        { 
            textBox1.Text = dr["Username"].ToString(); 
            textBox2.Text = dr["Password"].ToString(); 
            Admin ad = new Admin(); 
            ad.ShowDialog(); 
        } 
    } 
} 

2 个答案:

答案 0 :(得分:0)

根据您的代码,您实际上是在尝试根据数据库中的值设置textbox1textbox2的值。我猜你实际上是在试图检查它们是否相等?

如果是这样,你最好修改你的查询,这样它只会根据用户输入的详细信息从Admin返回详细信息,而不是从admin表中返回所有内容。

另外,根据Alfie Goodacre的回答,你想要SelectedItem

private void button1_Click(object sender, EventArgs e) 
{ 
    if (comboBox1.SelectedItem.ToString() == "Admin") 
    { 
        SqlCommand cmd = new SqlCommand("select * 
                                         from Admin 
                                         where Username = @UN and 
                                               Password = @PW");

        var unParam = new SqlParameter("@UN", SqlDbType.VarChar);
        unParam.Value = textbox1.text;
        cmd.Parameters.Add(unParam);

        var pwParam = new SqlParameter("@PW", SqlDbType.VarChar);
        pwParam.Value = textbox2.text;
        cmd.Parameters.Add(pwParam);

        SqlDataReader dr = cmd.ExecuteReader(); 

        //check if any data has returned based on the user inputs
        if (dr.HasRows)
        {
            if (dr.Read()) 
            {  
                Admin ad = new Admin(); ad.ShowDialog(); 
            }
        } 
    } 
}

答案 1 :(得分:-1)

您不希望选中的文字作为支票,您需要SelectedItem - 这是因为Button_Click事件会从框中删除焦点,从而有效地取消选中其中的任何文字。

private void button1_Click(object sender, EventArgs e) 
{ 
    if (comboBox1.SelectedItem.ToString() == "Admin") 
    { 
        SqlCommand cmd = new SqlCommand("select * from Admin");
        SqlDataReader dr = cmd.ExecuteReader(); 

        if (dr.Read()) 
        { 
            textBox1.Text = dr["Username"].ToString(); 
            textBox2.Text = dr["Password"].ToString(); 
            Admin ad = new Admin(); ad.ShowDialog(); 
        } 
    } 
}