当我向数据库中插入新数据时,请帮忙,除非重新启动程序,否则它不会显示在comboBox中。缺少了什么吗?
CmbSupp.Items.Clear();
con.Open();
Refresh();
SqlCommand cmd = con.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "select SupplierName from SuppTbl";
cmd.ExecuteNonQuery();
DataTable dt = new DataTable();
SqlDataAdapter dp = new SqlDataAdapter(cmd);
dp.Fill(dt);
foreach (DataRow dr in dt.Rows)
{
CmbSupp.Items.Add(dr["SupplierName"].ToString());
}
con.Close();
提前谢谢!
答案 0 :(得分:0)
更改
CmbSupp.Items.Clear()
前往CmbSupp.Items = null;
这是一个小错误,您必须设置Null值并重置数据;
试试吧;
答案 1 :(得分:0)
您可以这样做:
DataTable dt = new DataTable();
private void RefreshData()
{
dt.Clear();
con.Open();
Refresh();
SqlCommand cmd = con.CreateCommand();
cmd.CommandType = CommandType.Text;
cmd.CommandText = "select SupplierName from SuppTbl";
cmd.ExecuteNonQuery();
SqlDataAdapter dp = new SqlDataAdapter(cmd);
dp.Fill(dt);
con.Close();
cmd.Dispose();
}
private void BindToComboBox()
{
CmbSupp.DataSource = dt;
CmbSupp.ValueMember = "SupplierName";
CmbSupp.DisplayMember = "SupplierName";
}
理想情况下,您包括表的ID并将其放在ValueMember属性中。您只需调用Bind ToComboBox,然后在数据库中发生更改时仅调用RefreshData()。它应该自动更新组合框的内容。