First Combobox select items related records in second combobox

In this blog we will know when we click any items of first combobox its related records will be displayed in the second combobox.


App.config

<?xml version="1.0" encoding="utf-8" ?>
<configuration>
<appSettings>
<add key="dsn" value="Provider=Microsoft.Jet.OLEDB.4.0;Data Source=..\EMP.mdb" />
</appSettings>
</configuration>
 
Form1.cs

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using System.Data.OleDb;
namespace Combobox
{
    public partial class Form1 : Form
    {
        string ConnectionString = System.Configuration.ConfigurationSettings.AppSettings["dsn"];
        OleDbCommand com;
        OleDbDataAdapter oda;
        DataSet ds;
        string str;
        public Form1()
        {
            InitializeComponent();
        } 

        private void Form1_Load(object sender, EventArgs e)
        {
            comboBox1.Text = "Choose CourseID";
            comboBox1.Items.Add("Choose CourseID");
            OleDbConnection con = new OleDbConnection(ConnectionString);
            con.Open();
            str = "select * from Courses";
            com = new OleDbCommand(str, con);
            OleDbDataReader reader = com.ExecuteReader();
            while (reader.Read())
            {
                comboBox1.Items.Add(reader["CourseID"]);
            } 
        }

        private void comboBox1_SelectedIndexChanged(object sender, EventArgs e)
        {
            comboBox2.Items.Clear();
            OleDbConnection con = new OleDbConnection(ConnectionString);
            con.Open();
            str = "select * from Students where CourseID='" + comboBox1.Text.Trim() + "'";
            com = new OleDbCommand(str, con);
            OleDbDataReader reader = com.ExecuteReader();
            while (reader.Read())
            {
                comboBox2.Items.Add(reader["FirstName"].ToString());
            }
            con.Close();
            reader.Close(); 
        }
    }
}