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

本文关键字:数据库 插入文本 项目 选项 组合 | 更新日期: 2023-09-27 18:16:51

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

我该怎么做?

代码:

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(); 
        } 
    } 
} 

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

根据您的代码,您实际上试图从数据库中的值设置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(); 
            }
        } 
    } 
}

您不希望选中的文本作为您的检查,您想要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(); 
        } 
    } 
}