2015-01-06 4 views
0

Я пытаюсь заполнить combobox с помощью другого combobox, но что-то не так при изменении значений.Заполнять Combobox с другим Combobox динамически

Когда я выбираю элемент в combobox1, он загружает значения из базы данных так же, как и в combobox2, но когда я затем выбираю другой элемент в combobox1, combobox 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; 
} 
} 
+0

Итак, когда вы меняете первый выбранный вами ComboBox Index, все элементы во втором ComboBox меняются? – Abhishek

+0

@Abhishek Когда я выбрал индекс в combobox1, combobox2 имеет правильные значения, но если я перехожу на другой индекс combobox1, combobox2 будет отображать значения из моего первого индекса и второго индекса combobox1, чего я не хочу, я хочу чтобы показывать только значения в зависимости от того, какой индекс я выбрал в combobox1 –

+0

Когда вы делаете 'Cbx_ManageImagesImage.Items.Add (изображение);', предыдущие элементы все равно будут присутствовать в элементах ComboBox. Если вы выполняете 'ComboBox.Items.Clear()', все элементы будут удалены из него. – Abhishek

ответ

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

все элементы будут удалены из выпадающего списка перед добавлением новых элементов.

+0

Прохладный, он работает! :) Благодаря тонну! –

Смежные вопросы