首页 > 解决方案 > 如何将不同的 selectedindex 组合框值插入数据库?

问题描述

在我的项目中,我有一个从国家数据库表 [Pays] 列 [pays] 填充的国家组合框(Pay​​sCmBx0),我想要做的是当我在组合框中选择一个国家时,它会插入来自 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#

解决方案


感谢每个我为此提供解决方案的人:

我创建了一个函数,该函数获取与组合框中所选内容相对应的国家/地区代码:

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

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

         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) + "')";

推荐阅读