Logo Questions Linux Laravel Mysql Ubuntu Git Menu
 

How to populate c# windows forms combobox?

How can I fill a combobox from sql database ( students table with id, and name columns ) , the display text represents the name of a student and the value of the item of combobox is the id for that student that when I get the value of the combobox I will get the id value

like image 682
Amer Avatar asked Sep 14 '11 22:09

Amer


People also ask

How do you populate an array?

In JavaScript, you can use the Array. fill() method to populate an array with a zero or any other value like an object or a string. This method replaces all elements in an array with the value you want to populate the array with and returns the modified array.


2 Answers

Below are the important properties for you.

ComboBox.DataSource Property

A data source can be a database, a Web service, or an object that can later be used to generate data-bound controls. When the DataSource property is set, the items collection cannot be modified.

ComboBox.DisplayMember Property

A String specifying the name of an object property that is contained in the collection specified by the DataSource property. The default is an empty string ("").

ComboBox.ValueMember Property

A String representing the name of an object property that is contained in the collection specified by the DataSource property. The default is an empty string ("").

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

Here is one way if you want to add items programmatically.

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));

There are various ways of doing this.

How to: Add and Remove Items from a Windows Forms ComboBox

ComboBox.Items Property

like image 190
CharithJ Avatar answered Oct 25 '22 18:10

CharithJ


First off you need to figure out how you're going to get the data back from the DB, but I'll assume you either know that or intend to ask another question in regards to that. From there, your best bet is to bind some collection to the ComboBox. Here is an example of doing that with a DataSet. You can also bind to List<T> or other IEnumerable<T>, which would make more sense if you're going to use LINQ to get at the data. Here is a question here on SO about binding a List to a ComboBox Perhaps you could tell us how you intend to get at the data so we could give you a more tailored answer?

like image 39
Zann Anderson Avatar answered Oct 25 '22 17:10

Zann Anderson