用另一个 Combobox 动态填充一个 Combobox

Populate a Combobox with another Combobox dynamically

我正在尝试用另一个组合框填充一个组合框,但在更改值时出现错误。

当我 select combobox1 中的一个项目时,它会从数据库加载值到 combobox2,但是当我 select combobox1 中的另一个项目时,combobox 2 显示来自两者的值我的第一个和第二个项目。

我需要 combobox2 到 "forget" 第一个值,然后在我更改 combobox1 中的项目后显示下一个值。

知道如何实现吗?

代码如下:

private void Cbx_ManageMedia_SelectedIndexChanged(object sender, EventArgs e)
{ //Index change for combobox1

string query = "SELECT image FROM images WHERE type = '" + MIM + "'";
//MIM = Combobox1 value

MySqlConnection conDB = new MySqlConnection(connString);
MySqlCommand cmdDB = new MySqlCommand(query, conDB);
MySqlDataReader cReader;

try
{
    conDB.Open();
    cReader = cmdDB.ExecuteReader();

    while (cReader.Read())
    {
         string image = cReader.GetString("image");
         Cbx_ManageImagesImage.Items.Add(image);
    }
}
catch (Exception ex)
{
    throw ex;
}
}

您首先需要清除组合框中的现有项目。如果您将代码的第一部分更改为:

    private void Cbx_ManageMedia_SelectedIndexChanged(object sender, EventArgs e)
    { //Index change for combobox1

    Cbx_ManageImagesImage.Items.Clear() //THIS LINE HAS BEEN ADDED
    string query = "SELECT image FROM images WHERE type = '" + MIM + "'";
    .......

在添加新项目之前,将从组合框中清除所有项目。