当我填写时,在组合框中是双重的

时间:2010-07-19 07:18:06

标签: c# winforms

我有填充组合框的代码

SQL = "SELECT DISTINCT Name,Num FROM MyTbl order by Name";
            adp = new OracleDataAdapter(SQL, Conn);
            adp.Fill(dsNa, "MyTbl");
            adp.Dispose();
            comFna.DataSource = dsNa.Tables[0];
            comFna.DisplayMember = dsNa.Tables[0].Columns[0].ColumnName;
            comFna.ValueMember = dsNa.Tables[0].Columns[1].ColumnName;

但插入新名称后 - 我看不到下摆

在我再次运行此代码之后 - 我看到了双重记录(仅在组合框中)

如何解决这个问题? (我在C#Winforms上工作)

提前谢谢

2 个答案:

答案 0 :(得分:1)

当您向数据库添加新名称时,您有两个选择: 1)创建一个具有给定名称(和num值)的新项目,并将其插入到组合框项目集合中。 2)从数据库(您正在使用)中重新加载组合框

唯一的问题是你需要清除组合框项目或者在重新绑定之前将其数据源设置为null。

adp.Dispose();
comFna.DataSource = null; //ADD THIS LINE HERE OR comFna.Items.Clear();
comFna.DataSource = dsNa.Tables[0];
comFna.DisplayMember = dsNa.Tables[0].Columns[0].ColumnName;
comFna.ValueMember = dsNa.Tables[0].Columns[1].ColumnName;

答案 1 :(得分:0)

comFna.Items.Clear();

在填充comboBox之前,请使用此代码删除旧项目,然后重新填充它。