Как заполнить c # окна формы комбобокса? - PullRequest
14 голосов
/ 15 сентября 2011

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

Ответы [ 2 ]

26 голосов
/ 15 сентября 2011

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

Свойство ComboBox.DataSource

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

ComboBox.DisplayMember Property

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

ComboBox.ValueMember Property

Строка, представляющая имя свойства объекта, котороесодержится в коллекции, указанной свойством 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));

Существуют различные способы выполненияэтот.

Как: добавлять и удалять элементы из ComboBox Windows Forms

Свойство ComboBox.Items

3 голосов
/ 15 сентября 2011

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

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