如何使用c#winapp中的文本框检索组合框中的数据 [英] How can i retrieve data in a combobox using a textbox in a c# winapp

查看:68
本文介绍了如何使用c#winapp中的文本框检索组合框中的数据的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有两个组合框:一个用于城市,另一个用于显示中心。当用户选择城市时,我得到的问题是,当我使用文本框来检索数据时,仅显示城市,但不显示中心。



什么我试过了:



这是在cobobox中显示数据的代码



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

推荐答案

你需要调用CB_City_SelectedIndexChanged(对象发送者,EventArgs e)事件

见下面的代码



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

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


这篇关于如何使用c#winapp中的文本框检索组合框中的数据的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆