正在加载带有数据源的组合框

本文关键字:组合 数据源 加载 | 更新日期: 2023-09-27 18:25:13

我想在页面加载时用数据库中的数据填充一个组合框我把代码写在下面

private void QuotationForm_Load(object sender, EventArgs e)
        {
            MessageBox.Show("hghjgvhg");
            comboboxload();
        }


 public void comboboxload()
        {
            OleDbConnection oleDbConnection1 = new System.Data.OleDb.OleDbConnection(connString);
            oleDbConnection1.Open();
            OleDbCommand oleDbCommand1 = new System.Data.OleDb.OleDbCommand("Select jobpk,jobecode from  jobcodemastertable",oleDbConnection1);
            OleDbDataReader reader = oleDbCommand1.ExecuteReader();
            DataTable dt = new DataTable();
            dt.Columns.Add("jobpk", typeof(int));
            dt.Columns.Add("jobcode", typeof(string));
            dt.Load(reader);
            cmbjobcode.ValueMember = "jobpk";
            cmbjobcode.DisplayMember = "jobcode";
            cmbjobcode.DataSource = dt;
            oleDbConnection1.Close();  
        }

它不会检测错误或异常,但不会加载带有数据值的组合框

正在加载带有数据源的组合框

尝试这个

comboBox1.DataSource = ds.Tables[0];
comboBox1.ValueMember = "id";
comboBox1.DisplayMember = "name";

您可能需要将数据表的视图与组合框绑定

cmbjobcode.DataSource = dt.DefaultView;

您缺少DataBind方法

dt.Load(reader);
cmbjobcode.ValueMember = "jobpk";
cmbjobcode.DisplayMember = "jobcode";
cmbjobcode.DataSource = dt;
//here
cmbjobcode.DataBind();
oleDbConnection1.Close();

您必须在组合中调用DataBind方法。这就是为什么它不流行的原因。