我试图用另一个组合框填充一个组合框但是在更改值时出现问题。
当我在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;
}
}
答案 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 + "'";
.......
在添加新项目之前,所有项目都将从组合框中清除。