Как заполнить ComboBox из базы данных доступа в C # - PullRequest
0 голосов
/ 11 мая 2010

У меня есть следующий комбинированный список:

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 и в таблице Cameras она имеет следующие поля: CamID, Cameras, Warranty, Year.Меня интересует только поле «Камеры».Спасибо!

Ответы [ 2 ]

4 голосов
/ 11 мая 2010

Вам следует внимательно изучить операции ADO.NET с файлами .mdb здесь

Сначала подготовьте строку подключения

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

combobox.DataTextField = "Cameras";//from query
0 голосов
/ 17 мая 2012

Возможно, вы захотите добавить значение в поле со списком, чтобы вы могли связать его с идентификатором камеры. Попробуйте изменить запрос на:

SELECT CameraID, Cameras From Camers

Затем добавьте идентификатор камеры к элементу значения

combobox.valuemember = "cameraID"

и

combobox.displaymember = "Cameras".

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...