用户选择Combobox然后根据数据库MS Access c#标签

Posted

技术标签:

【中文标题】用户选择Combobox然后根据数据库MS Access c#标签【英文标题】:user selection Combobox then to Labels according to database MS Access c# 【发布时间】:2021-05-27 12:40:13 【问题描述】:

我在下面有以下代码,我试图做的是在组合框中有来自我的数据库的“ID”,这个 ID 代表管理员用来创建的每个调查详细信息,因此当用户查看他们单击的调查时在组合框中的调查编号上,标签将根据数据库而变化。我用下面的代码尝试了它,但不幸的是,它似乎所做的只是随机获取一个,如果有人可以提供帮助,那就太棒了。不一定要像下面这样,只要有效就行,

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)

    try
    
        con.Open();

        string query = "SELECT * FROM tbl_newsurvey ";
        OleDbCommand cmd = new OleDbCommand();
        cmd.Connection = con;
        cmd.CommandText = query;

        OleDbDataReader reader = cmd.ExecuteReader();
        while (reader.Read())
        
            string name = reader["txtname"].ToString();
            lblname.Text = name;
        
        con.Close();
    
    catch (Exception ex)
    
        MessageBox.Show("Error" + ex);
    

【问题讨论】:

我认为您应该在查询中使用WHERE 子句,以便根据ComboBox Selected Item 从数据库中获取数据 @AndreiSolero 是这样的吗? string query = "SELECT * FROM tbl_newsurvey WHERE ID= ' " + comboBoxID.Text + "'"; 是的,这就是您使用组合框从数据库中检索数据的方式 另外,我建议你使用参数化查询来避免 SQL 注入 你能告诉我你会怎么做吗? 【参考方案1】:

您可以尝试使用 Combobox 从数据库中搜索数据

我使用参数化查询来避免SQL Injection

private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)

    try
    
        con.Open();

        string query = "SELECT * FROM tbl_newsurvey WHERE [ColumnName] = @ComboBoxValue";
        OleDbCommand cmd = new OleDbCommand();
        cmd.Connection = con;
        cmd.CommandText = query;
        cmd.Parameters.AddWithValue("@ComboBoxValue", comboBox1.SelectedIndex.ToString())
        OleDbDataReader reader = cmd.ExecuteReader();
        if (reader.Read() == true)
        
            string name = reader["txtname"].ToString();
            lblname.Text = name;
        
        con.Close();
    
    catch (Exception ex)
    
        MessageBox.Show("Error" + ex);
    

【讨论】:

以上是关于用户选择Combobox然后根据数据库MS Access c#标签的主要内容,如果未能解决你的问题,请参考以下文章

使用动态布局在 MS Access 中生成报告

MS-Access 2013;根据多记录形式的记录数据更改组合框选项

MS Access ComboBox 具有自己的值

MS Access:组合框重新查询

MS Access Combobox 如果值然后将字段设置为日期?

根据拼音首字母进行过滤的combobox