Как я могу заполнить combobox из базы данных sql (таблица студентов с идентификаторами и столбцами имен), отображаемый текст представляет имя студента, а значение элемента combobox - это идентификатор для этого студента, который, когда я получаю значение combobox я получу значение id
Как заполнить cBO окна формы combobox?
Ответ 1
Ниже приведены важные для вас свойства.
Источником данных может быть база данных, веб-служба или объект, который может позже будет использоваться для создания привязанных к данным элементов управления. Когда DataSource свойство установлено, коллекция элементов не может быть изменена.
Свойство ComboBox.DisplayMember
A Строка, определяющая имя свойства объекта, которое содержится в коллекции, указанной свойством DataSource. По умолчанию используется пустую строку ("").
A Строка, представляющая имя свойства объекта, которое содержится в коллекции, указанной свойством DataSource. По умолчанию используется пустую строку ("").
DataTable dataTable = GetDataTable("Select * from Student"); // You have to implement the ways to retrieve data from the database.
comboBox1.Datasource = dataTable;
comboBox1.DisplayMember = StudentName; // Column Name
comboBox1.ValueMember = StuentId; // Column Name
Вот один из способов, если вы хотите программно добавлять элементы.
private class Item
{
public string _Name;
public int _Id
public Item(string name, int id)
{
_Name = name;
_Id = id;
}
public string Name
{
get { return _Name; }
set { _Name = value; }
}
public string Id
{
get { return _Id; }
set { _Id = value; }
}
}
comboBox1.DisplayMember = "Name";
comboBox1.ValueMember = "Id";
comboBox1.Items.Add(new Item("Student 1", 1));
comboBox1.Items.Add(new Item("Student 2", 2));
comboBox1.Items.Add(new Item("Student 3", 3));
Существуют различные способы сделать это.
Как добавить и удалить элементы из Компонента Windows Forms ComboBox
Ответ 2
Сначала вам нужно выяснить, как вы собираетесь вернуть данные из БД, но я предполагаю, что вы либо знаете, либо намерены задать другой вопрос в отношении этого. Оттуда лучше всего привязать некоторую коллекцию к ComboBox
. Здесь приведен пример этого с DataSet
. Вы также можете привязываться к List<T>
или другому IEnumerable<T>
, что имеет смысл, если вы собираетесь использовать LINQ для получения данных. Здесь здесь задается вопрос о привязке List
к ComboBox
. Возможно, вы могли бы рассказать нам, как вы собираетесь получать данные, чтобы мы могли дать вам более индивидуальный ответ?