因此,我可以从我的数据库中将某些列(客户姓氏和名字)中的值输入到我的mainform中的组合框中,并且在使用LoadEvent打开表单时已经加载了它。但是我有另一种形式,我在同一个表上插入另一行(客户名称,fname,电话等),我的列在主窗体上显示。所以我决定在我的mainform上放一个按钮,当我使用另一个表单添加客户时,我可以刷新我的组合框的内容。问题是,当我按下按钮进行刷新时,它只会创建组合框中已有的副本以及刚刚添加的另一个副本。请帮忙。
我的代码:
SqlConnection con = new SqlConnection("Data Source=DESKTOP-39SPLT0;Initial Catalog=SalesandInventory;Integrated Security=True");
con.Open();
SqlCommand cmd1 = new SqlCommand("select clName, cName from tblCustomer", con);
SqlDataAdapter sda = new SqlDataAdapter(cmd1);
DataSet ds = new DataSet();
sda.Fill(ds);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
comboBox1.Items.Add(ds.Tables[0].Rows[i][0] + ", " + ds.Tables[0].Rows[i][1]);
}
con.Close();
答案 0 :(得分:1)
您只需使用此代码:
comboBox1.DataSource = ds.Tables[0];
comboBox1.ValueMember = "clName";
comboBox1.DisplayMember = "cName";
答案 1 :(得分:0)
好吧,我觉得很傻,但多亏了mjwills和鼹鼠。
private void btnReset_Click(object sender, EventArgs e){
comboBox1.Items.Clear();
CustomerInfo();
}
void CustomerInfo()
{
SqlConnection con = new SqlConnection("Data Source=DESKTOP-39SPLT0;Initial Catalog=SalesandInventory;Integrated Security=True");
con.Open();
SqlCommand cmd1 = new SqlCommand("select clName, cName from tblCustomer", con);
SqlDataAdapter sda = new SqlDataAdapter(cmd1);
DataSet ds = new DataSet();
sda.Fill(ds);
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
comboBox1.Items.Add(ds.Tables[0].Rows[i][0] + ", " + ds.Tables[0].Rows[i][1]);
}
con.Close();
}