用数据源加载combobox

我想在页面加载时用数据库填充combobox,我已经编写了如下代码

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

它不会消除错误或exception,但不会使用数据值加载combobox

您可能需要将数据表的视图与combobox绑定

 cmbjobcode.DataSource = dt.DefaultView; 

试试这个

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

你错过了DataBind方法

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

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