How to populate ComboBox with data from Database in C#
By FoxLearn 11/19/2024 1:59:52 PM 7.27K
How to populate ComboBox with data from Database in C#?
Click New Project, then select Visual C# on the left, then Windows and then select Windows Forms Application. Name your project "LinkCombobox" and then click OK
Drag and drop Label, TextBox, Combobox controls from Toolbox onto your form designer, then design your form as below.
You can populate a ComboBox in C# by querying the database through Entity Framework and setting the ComboBox's DataSource
property.
Create an EF Model, then add a category table form the Northwind database to your Entity Framework Model.
In the Form_Load
event or a method, you can retrieve data from the database using Entity Framework and then bind it to the ComboBox.
private void Form1_Load(object sender, EventArgs e) { try { //Load category data using (NorthwindEntities db = new NorthwindEntities()) { cboCategory.DataSource = db.Categories.ToList(); cboCategory.ValueMember = "CategoryID"; cboCategory.DisplayMember = "CategoryName"; } } catch (Exception ex) { MessageBox.Show(ex.Message, "Message", MessageBoxButtons.OK, MessageBoxIcon.Error); } }
The ToList()
method fetches all rows from the Categories
table and converts them into a list. This list will then be assigned to the DataSource
property of the ComboBox.
Setting DisplayMember
and ValueMember
:
DisplayMember
: This tells the ComboBox what property of each object in the list to display.ValueMember
: This specifies the property of each object in the list to use as the value when an item is selected.
Once the ComboBox is populated, you can access the selected value using SelectedValue
, and the display text using SelectedItem
or Text
.
For example, to get the selected category's ID:
int selectedCategoryId = (int)cboCategory.SelectedValue;
If you want to perform an action when the selected item in the ComboBox changes, you can handle the SelectionChangeCommitted
event:
private void cboCategory_SelectionChangeCommitted(object sender, EventArgs e) { Cursor.Current = Cursors.WaitCursor; // Get the selected category Category obj = cboCategory.SelectedItem as Category; if (obj != null) { // Update data to textbox txtCategoryID.Text = obj.CategoryID.ToString(); txtCategoryName.Text = obj.CategoryName; txtDescription.Text = obj.Description; } Cursor.Current = Cursors.Default; }
This is the basic way to populate a ComboBox from a database using Entity Framework in C#.
VIDEO TUTORIAL