c#中的组合框更新

时间:2012-08-11 10:30:53

标签: c# sql-server

我正在使用组合框,我刷新组合框值,首先我删除所有值,然后重新填充它。但它没有用。代码复制了组合框中创建问题的值。这是我的代码。

    for (int i = 0; i < updateCombo.Items.Count; i++)
    updateCombo.Items.RemoveAt(i);

    //----------- Now Adding New Values --------
    updateCombo.Items.Add("Select an option . . .");

    SqlCommand command = new SqlCommand(Queries.qry9, connection);
    SqlDataReader reader = command.ExecuteReader();

请帮我解决这个问题。

2 个答案:

答案 0 :(得分:3)

不确定为什么会发生这种情况 - 但如果Items.Count返回为0,那么您的循环将不会从项目列表中删除任何现有内容,您将获得重复项。

您是否尝试过清除列表中的所有内容,无论使用:

updateCombo.Items.Clear(); 

它可以节省您不必遍历所有内容,无论如何都要逐个删除它们。

答案 1 :(得分:1)

你的for循环是删除项目0,然后是1,然后是2,依此类推。 但是,当删除0处的项目时,列表中的该位置不会保持为空 - 其他项目实际上会向下移动一个。

因此,如果您将清算代码更改为:

for (int i = 0; i < updateCombo.Items.Count; i++)
updateCombo.Items.RemoveAt(0);

它应该有用。 但是,正如其他人所建议的那样,使用updateCombo.Items.Clear();是一种更好的方法。