如何将不同的selectedindex组合框值插入数据库?

问题描述 投票:0回答:1

在我的项目中,我有一个国家组合框(Pay​​sCmBx0),从国家数据库表[Pays]列[pays]填充,我想要做的是当我在组合框中选择一个国家时,它从Alpha插入Alpha国家代码令牌另一个表中的国家代码列[Alpha2]​​(例如:United-states = US)。

所以当我从组合框中选择一个国家时,它什么都不做,它会插入相同的值。

我的表看起来像这样:

        [Aplha2]       [Pays]
         GB           United Kingdom
         IM           Isle of Man
         TZ           United Republic Of Tanzania
         US           United States
         BF           Burkina Faso
         UY           Uruguay
         UZ           Uzbekistan

这是我的代码:

  void Fillcombo()
    {

        string Query = "SELECT * FROM Pays";


        SqlCommand cmd = new SqlCommand(Query, con);
        SqlDataReader myRead;

        try
        {
            con.Open();

            myRead = cmd.ExecuteReader();

            while (myRead.Read())
            {
                string sName = myRead["Pays"].ToString();
                PaysCmBx0.Items.Add(sName);
            }

            con.Close();
        }
        catch (Exception exc)
        {

            MessageBox.Show(exc.Message);
        }


    }



     private void AddBtn_Click(object sender, EventArgs e)
    {


        try
        {                 
                string Query = "INSERT INTO [dbo].[Adresses] ([idParent],[Type] ,[Adresse0],[Adresse1],[Adresse2],[CPT],[Ville],[Pays]) VALUES ('"+Contact.idContact+"','" + TypeAdrCmBx.Text+ "','" + this.AdrTxtBx0.Text + "','" + this.AdrTxtBx1.Text + "','" + this.AdrTxtBx2.Text + "','" + this.CptTxtBx.Text + "','" + this.VilleTxtBx.Text + "','" + this.PaysCmBx0.Text + "')";                    

                SqlCommand cmd = new SqlCommand(Query, con);
            con.Open();
            SqlDataReader Read;

                try
                {
                 Read = cmd.ExecuteReader();

                }
                catch (Exception exc)
                {

                    MessageBox.Show(exc.Message);
                }

            con.Close();
        }
        catch (Exception ex)
        {

            MessageBox.Show(ex.Message);
        }
    }


    private void PaysCmBx0_SelectedIndexChanged(object sender, EventArgs e)
    {
        string Query1 = "SELECT * FROM Pays  WHERE Pays='" + PaysCmBx0.Text + "'";


        SqlCommand cmd1 = new SqlCommand(Query1, con);
        SqlDataReader myRead;

        try
        {
            con.Open();

            myRead = cmd1.ExecuteReader();

            while (myRead.Read())
            {
                string Code_Pays = myRead["Alpha2"].ToString();

               PaysCmBx0.SelectedIndex.Equals(Code_Pays);
            }

            con.Close();
        }
        catch (Exception exc)
        {

            MessageBox.Show(exc.Message);
        }
    }
c#
1个回答
0
投票

感谢每一个人为此提供资金支持:

我创建一个函数,获取对应于组合框中所选内容的国家代码:

     private string get_code_pays(string nom_pays)
    {
        string Query1 = "SELECT * FROM Pays  WHERE Pays='" + PaysCmBx0.Text + "'";
        string Code_Pays="";

        SqlCommand cmd1 = new SqlCommand(Query1, con);
        SqlDataReader myRead;

        try
        {
            con.Open();

            myRead = cmd1.ExecuteReader();

            while (myRead.Read())
            {
                 Code_Pays = myRead["Alpha2"].ToString();

                PaysCmBx0.SelectedIndex.Equals(Code_Pays);
            }

            con.Close();
        }
        catch (Exception exc)
        {

            MessageBox.Show(exc.Message);
        }
        return Code_Pays;
    }

然后使用insert中的参数调用我的函数:

         string Query = "INSERT INTO [dbo].[Adresses] ([idParent],[Type] ,[Adresse0],[Adresse1],[Adresse2],[CPT],[Ville],[Pays]) VALUES ('"+Contact.idContact+"','" + A + "','" + this.AdrTxtBx0.Text + "','" + this.AdrTxtBx1.Text + "','" + this.AdrTxtBx2.Text + "','" + this.CptTxtBx.Text + "','" + this.VilleTxtBx.Text + "','" + get_code_pays( this.PaysCmBx0.Text) + "')";
© www.soinside.com 2019 - 2024. All rights reserved.