Подтвердить что ты не робот

Как заполнить cBO окна формы combobox?

Как я могу заполнить combobox из базы данных sql (таблица студентов с идентификаторами и столбцами имен), отображаемый текст представляет имя студента, а значение элемента combobox - это идентификатор для этого студента, который, когда я получаю значение combobox я получу значение id

4b9b3361

Ответ 1

Ниже приведены важные для вас свойства.

Свойство ComboBox.DataSource

Источником данных может быть база данных, веб-служба или объект, который может позже будет использоваться для создания привязанных к данным элементов управления. Когда DataSource свойство установлено, коллекция элементов не может быть изменена.

Свойство ComboBox.DisplayMember

A Строка, определяющая имя свойства объекта, которое содержится в коллекции, указанной свойством DataSource. По умолчанию используется пустую строку ("").

Свойство ComboBox.ValueMember

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

Свойство ComboBox.Items

Ответ 2

Сначала вам нужно выяснить, как вы собираетесь вернуть данные из БД, но я предполагаю, что вы либо знаете, либо намерены задать другой вопрос в отношении этого. Оттуда лучше всего привязать некоторую коллекцию к ComboBox. Здесь приведен пример этого с DataSet. Вы также можете привязываться к List<T> или другому IEnumerable<T>, что имеет смысл, если вы собираетесь использовать LINQ для получения данных. Здесь здесь задается вопрос о привязке List к ComboBox. Возможно, вы могли бы рассказать нам, как вы собираетесь получать данные, чтобы мы могли дать вам более индивидуальный ответ?