用另一个Combobox动态填充Combobox

时间:2015-01-06 01:05:37

标签: c# mysql visual-studio-2013 combobox

我试图用另一个组合框填充一个组合框但是在更改值时出现问题。

当我在combobox1中选择一个项目时,它会将数据库中的值加载到combobox2,但是当我在combobox1中选择另一个项目时,组合框2显示我的第一个和第二个项目的值。

我需要使用combobox2来忘记"第一个值,然后在我更改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;
}
}

1 个答案:

答案 0 :(得分:1)

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

    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 + "'";
    .......

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