用数据源加载组合框

时间:2012-02-20 03:35:43

标签: c#

我想在页面加载时用数据库中的数据填充组合框 我编写了如下代码

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();  
        }

它不会消除错误或异常,但不会使用数据值

加载组合框

4 个答案:

答案 0 :(得分:6)

试试这个

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

答案 1 :(得分:3)

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

绑定
cmbjobcode.DataSource = dt.DefaultView;

答案 2 :(得分:1)

您缺少DataBind方法

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

答案 3 :(得分:0)

您必须在组合上调用DataBind方法。这就是为什么它没有填充。