Click here to Skip to main content
15,899,754 members
Please Sign up or sign in to vote.
1.00/5 (2 votes)
See more:
I have two comboboxes: one for city and another for displaying center. When the user selects city the problem I get is when I use a textbox to retrive data only the city is displayed, but center is not displayed.

What I have tried:

This is code that display data in cobobox

C#
public void FillComboCity()
       {
           try
           {
               dSet = new DataSet();
               con.Open();
               s = "select City_id , City_Name from City";
               sCommand = new SqlCommand(s, con);
               sdAdapter = new SqlDataAdapter();
               sdAdapter.SelectCommand = sCommand;
               sdAdapter.Fill(dSet);
               DataRow dr = dSet.Tables[0].NewRow();
               dr.ItemArray = new object[2] { 0, " ---Select--- " };
               dSet.Tables[0].Rows.InsertAt(dr, 0);
               CB_City.ValueMember = "City_id";
               CB_City.DisplayMember = "City_Name";
               CB_City.DataSource = dSet.Tables[0];
               con.Close();

           }
           catch
           {
               return;
           }
       }
        private void CB_City_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                int val;
                Int32.TryParse(CB_City.SelectedValue.ToString(), out val);
                s = " select Center_id , Center_Name from Center where City_id =" + val;
                con.Open();
                sCommand = new SqlCommand(s, con);
                sdAdapter = new SqlDataAdapter();
                sdAdapter.SelectCommand = sCommand;
                DataSet set = new DataSet();
                sdAdapter.Fill(set);
                DataRow dr = set.Tables[0].NewRow();
                dr.ItemArray = new object[2] { 0, " ---Select--- " };
                set.Tables[0].Rows.InsertAt(dr, 0);
                CB_Center.ValueMember = "Center_id";
                CB_Center.DisplayMember = "Center_Name";
                CB_Center.DataSource = set.Tables[0];
                con.Close();
            }
            catch
            {
                return;
            }
        }
        private void CB_City_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                int val;
                Int32.TryParse(CB_City.SelectedValue.ToString(), out val);
                s = " select Center_id , Center_Name from Center where City_id =" + val;
                con.Open();
                sCommand = new SqlCommand(s, con);
                sdAdapter = new SqlDataAdapter();
                sdAdapter.SelectCommand = sCommand;
                DataSet set = new DataSet();
                sdAdapter.Fill(set);
                DataRow dr = set.Tables[0].NewRow();
                dr.ItemArray = new object[2] { 0, " ---Select--- " };
                set.Tables[0].Rows.InsertAt(dr, 0);
                CB_Center.ValueMember = "Center_id";
                CB_Center.DisplayMember = "Center_Name";
                CB_Center.DataSource = set.Tables[0];
                con.Close();
            }
            catch
            {
                return;
            }
        }
        private void CB_City_SelectedIndexChanged(object sender, EventArgs e)
        {
            try
            {
                int val;
                Int32.TryParse(CB_City.SelectedValue.ToString(), out val);
                s = " select Center_id , Center_Name from Center where City_id =" + val;
                con.Open();
                sCommand = new SqlCommand(s, con);
                sdAdapter = new SqlDataAdapter();
                sdAdapter.SelectCommand = sCommand;
                DataSet set = new DataSet();
                sdAdapter.Fill(set);
                DataRow dr = set.Tables[0].NewRow();
                dr.ItemArray = new object[2] { 0, " ---Select--- " };
                set.Tables[0].Rows.InsertAt(dr, 0);
                CB_Center.ValueMember = "Center_id";
                CB_Center.DisplayMember = "Center_Name";
                CB_Center.DataSource = set.Tables[0];
                con.Close();
            }
            catch
            {
                return;
            }
        }

this is code that i used it to retrieve data in combobox and textbox using textbox :-

private void txt_Pid_KeyDown(object sender, KeyEventArgs e)
        {
            if(e.KeyCode == Keys.F1)
            {
                FRM_Patient_List frm = new FRM_Patient_List();
                frm.Show();
            }

            if(e.KeyCode == Keys.Enter)
            {
                con.Open();
                s = " select P_id , P_Name ,  P_Gender , P_DateOfBirth , City.City_Name ,";
                s = s + " Center.Center_Name , Phone1  , Phone2  , Doctor.Doctor_Name , ";
                s = s + " SideName.Side_Name  , P_Weight  , P_Length  , Notes  ";
                s = s + " from Patients ";
                s = s + " inner join City on Patients.City_id = City.City_id ";
                s = s + " inner join Center on Patients.Center_id = Center.Center_id ";
                s = s + " inner join Doctor on Patients.Doctor_id = Doctor.Doctor_id ";
                s = s + " inner join SideName on Patients.Side_id = SideName.Side_id ";
                s = s + " where P_id = @P_id";
                sCommand = new SqlCommand(s, con);
                sCommand.Parameters.AddWithValue("@P_id", txt_Pid.Text);
                sdReader = sCommand.ExecuteReader();
                if (sdReader.Read())
                {
                    txt_PName.Text = sdReader.GetString(1);
                    if (Convert.ToInt32(sdReader.GetBoolean(2)) == 0)
                    {
                        radioButton_Man.Checked = true;

                    }
                    else
                    {
                        radioButton_Woman.Checked = true;
                    }
                    dtp_PBirthDate.Value = sdReader.GetDateTime(3);
                    CB_City.Text = sdReader.GetString(4);
                    //CB_Center.Text = sdReader.GetString(5);
                    txt_Phone1.Text = sdReader.GetString(6);
                    txt_Phone2.Text = sdReader.GetString(7);
                    CB_Doctor.Text = sdReader.GetString(8);
                    CB_Side.Text = sdReader.GetString(9);
                    txt_Weight.Text = sdReader.GetString(10);
                    txt_Length.Text = sdReader.GetString(11);
                    txt_Notes.Text = sdReader.GetString(12);

                    txt_Pid.ReadOnly = true;
                    btn_Delet.Enabled = true;
                    btn_Edit.Enabled = true;
                    btn_Save.Enabled = false;
                }
                con.Close();
            }
Posted
Updated 12-Feb-16 14:01pm
v4

1 solution

You need to call the CB_City_SelectedIndexChanged(object sender, EventArgs e) event
see below code

C#
        CB_City.Text = sdReader.GetString(4);

        //**********************************
        CB_City_SelectedIndexChanged(sender, e)
        //*********************************

        //CB_Center.Text = sdReader.GetString(5);
        txt_Phone1.Text = sdReader.GetString(6);
        txt_Phone2.Text = sdReader.GetString(7);
        CB_Doctor.Text = sdReader.GetString(8);
        CB_Side.Text = sdReader.GetString(9);
        txt_Weight.Text = sdReader.GetString(10);
        txt_Length.Text = sdReader.GetString(11);
        txt_Notes.Text = sdReader.GetString(12);

        txt_Pid.ReadOnly = true;
        btn_Delet.Enabled = true;
        btn_Edit.Enabled = true;
        btn_Save.Enabled = false;
    }
    con.Close();
}
 
Share this answer
 
Comments
Member 12244977 13-Feb-16 1:21am    
not work
RDBurmon 13-Feb-16 3:00am    
are you getting any error?
Member 12244977 13-Feb-16 3:05am    
no but values for Cb_Center not display

This content, along with any associated source code and files, is licensed under The Code Project Open License (CPOL)



CodeProject, 20 Bay Street, 11th Floor Toronto, Ontario, Canada M5J 2N8 +1 (416) 849-8900