C#设置组合框项目的不同值,然后显示名称

C#设置组合框项目的不同值,然后显示名称,c#,mysql,combobox,C#,Mysql,Combobox,我不确定这是否可行,但我希望我的组合框显示名称,但我希望使用数据库中的ID。所以我有一个应用程序,在这个应用程序中,你们在组合框中输入玩家的团队,然后将团队get作为ID插入到玩家表中。我还想知道这是否是在C#中使用mysql的正确方法,或者是否有更好、更安全的方法 public void team_combo() { MySqlConnection con = new MySqlConnection(connection); MySqlComma

我不确定这是否可行,但我希望我的组合框显示名称,但我希望使用数据库中的ID。所以我有一个应用程序,在这个应用程序中,你们在组合框中输入玩家的团队,然后将团队get作为ID插入到玩家表中。我还想知道这是否是在C#中使用mysql的正确方法,或者是否有更好、更安全的方法

    public void team_combo()
    {
        MySqlConnection con = new MySqlConnection(connection);
        MySqlCommand cmd = new MySqlCommand("SELECT * FROM ekipe", con);
        MySqlDataReader msdr;

        try
        {
            con.Open();
            msdr = cmd.ExecuteReader();
            while (msdr.Read())
            {
                string team= msdr.GetString("id_ekipe");
                comboBox1.Items.Add(team);
            }

        }
        catch (Exception ex)
        {
            MessageBox.Show(ex.Message);
        }

    }

您可以创建一个
Team
对象,该对象将包含团队的ID和名称,然后覆盖
toString
以返回名称。您还可以对同一对象使用BindingSource并将DisplayProperty设置为名称。或者,如果您不想创建对象,ComboBox会有一个
格式
事件,您可以使用该事件在显示之前更改文本。请告诉我们这是Windows窗体、WPF还是其他内容,由于您的代码中没有足够的上下文信息来确定这一点。它是windows窗体请参见:您可以创建一个
Team
对象,该对象将包含团队的ID和名称,然后覆盖
toString
,使其返回名称。您还可以对同一对象使用BindingSource并将DisplayProperty设置为名称。或者,如果您不想创建对象,ComboBox会有一个
格式
事件,您可以使用该事件在显示之前更改文本。请告诉我们这是Windows窗体、WPF还是其他内容,因为您的代码中没有足够的上下文信息来确定。这是Windows窗体请参阅: