微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

用户选择组合框然后根据数据库 MS Access c# 进行标签

如何解决用户选择组合框然后根据数据库 MS Access c# 进行标签

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

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

解决方法

您可以尝试使用 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);
    }
}

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。