【发布时间】:2016-11-16 21:02:50
【问题描述】:
在我的代码中,我创建了一个表并将一个 CSV 文件导出到它。在我的代码的另一部分,组合框填充了我数据库中的表名。如下所示:
private void FillCombo()
{
try
{
string connectionString = "Data Source=LPMSW09000012JD\\SQLEXPRESS;Initial Catalog=Pharmacies;Integrated Security=True";
using (SqlConnection con2 = new SqlConnection(connectionString))
{
con2.Open();
string query = "SELECT * FROM INFORMATION_SCHEMA.TABLES ";
SqlCommand cmd2 = new SqlCommand(query, con2);
SqlDataReader dr2 = cmd2.ExecuteReader();
while (dr2.Read())
{
int col = dr2.GetOrdinal("TABLE_NAME");
comboBox1.Items.Add(dr2[col].ToString());
}
}
}
catch (Exception ex)
{
MessageBox.Show(ex.ToString());
}
}
我试图实现的是刷新组合框以反映通过上述函数执行的新添加的表。首先想到的是创建一个按钮并像这样重写上面的函数:
private void button1_Click_1(object sender, EventArgs e)
{
//this is where I would just rewrite the contents of the above function
}
正如您所猜测的,它可以工作,但值是重复的。如何在不复制现有信息的情况下刷新组合框?
【问题讨论】:
-
先清除项目?
-
如果你的意思是
comboBox1.ResetText()然后执行命令然后同样的结果,重复@Berkay -
他的意思是
comboBox1.Items.Clear();——把它放在FillCombo的顶部,然后从按钮点击处理程序中调用FillCombo。 -
不,在调用方法之前,像这样清除组合框项目,
combobox.Items.Clear(); -
不客气,请看答案,还有其他选择。