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