2010-05-11 48 views
0

填充組合框我的下一個組合框:如何從Access數據庫在C#

this.comboBoxProd.Enabled = false; 
this.comboBoxProd.FormattingEnabled = true; 
this.comboBoxProd.Items.AddRange(new object[] { 
      "Cameras", 
      "------------", 
      " Digital IXUS 850 IS ", 
      " Digital IXUS 900 Ti ", 
      " Digital IXUS 75 -NEW- ", 
      " Digital IXUS 70 -NEW- ", etc. 

我想改變它,並從數據庫取值。 我的數據庫名稱是bd1.mdb,並且在表格相機中它具有以下字段:CamID,相機,保修,年。我只對「相機」領域感興趣。 謝謝!

回答

4

您應該對ADO.NET操作與文件的.mdb here細看

首先,準備好你的連接字符串

string connString = "Microsoft.Jet.OLEDB.4.0;Data Source=C:\\bd1.mdb"; 

下一步是準備你的查詢

string query = "SELECT Cameras FROM Cameras"; 

你將需要一個適配器來綁定數據源,在你的情況下它是OleDbDataAdapter

OleDbDataAdapter dAdapter = new OleDbDataAdapter(query, connString); 

現在你可以使用一個的DataTable對象

DataTable source = new DataTable(); 

填充數據綁定到組合框到源

dAdapter.Fill(source); 

你的來源是完全有攝像頭,現在你可以參考到您的組合框控件

combobox.DataSource = source; 

不要忘了,你應該是哪個字段將在組合框項目

combobox.DataTextField = "Cameras";//from query 
+0

對我沒有太大的幫助。我不會修改數據庫的內容,我想從中添加內容。 – 2010-05-11 12:21:11

+0

抱歉給我帶來不便,Bomboe在寫完整個答案時,我應該刪除它的其餘部分。 – Myra 2010-05-11 12:40:28

+0

ty,這真的幫助了我! – 2010-05-11 13:30:42

0

可能要到valuemember添加到ComboBox這樣你可以鏈接到攝像機ID顯示出來。請嘗試更改查詢:

SELECT CameraID, Cameras From Camers 

然後cameraID增加值的成員

combobox.valuemember = "cameraID"

combobox.displaymember = "Cameras"