用特定数据填充组合框的功能一次不能超过1个组合框,没有明显的错误

我有一个函数,应该使用给定的数据填充组合框。目前,它一次只能用于一个组合框。

我已经尝试过两次复制相同的函数(基本上我只是更改了变量名称,并制作了一个新的函数与第二个组合框一起使用),以查看它是否是变量错误,但仍然无法正常工作。我重建了解决方案,但仍然无法正常工作。

这是该功能的代码

public void FillComboBox(String displayMember,String valueMember,ComboBox combo,String table)
    {

        DataTable dt = new DataTable();
        InitializeComponent();
        string str = @"Provider=microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\B8328\source\repos\KaihatsuEnshuu\KaihatsuEnshuu\OI21Database1.accdb";
        OleDbConnection con = new OleDbConnection(str);
        string sql1 = "SELECT "+ displayMember +  ","+valueMember+ " FROM "+ table ;
        MessageBox.Show(sql1); //Check Query String

        OleDbdataAdapter da = new OleDbdataAdapter(sql1,con);

        da.Fill(dt);

        combo.DataSource = dt.DefaultView;
        combo.DisplayMember = displayMember;
        combo.ValueMember = valueMember;


        con.Close();

    }

这是我在表单上使用的代码

    public NewOrderForm()
    {

        InitializeComponent();
        FillComboBox("customerName","customerId",comboBox2,"customers");
        FillComboBox("empname","empno",comboBox1,"emp");
    }

我希望表单中的两个组合框都有一组值可供选择,但总是只有一个显示值的框(在此情况下,第一个组合框是客户组合框)。

jieqide 回答:用特定数据填充组合框的功能一次不能超过1个组合框,没有明显的错误

原来,我只需要注释掉FillCombobox中的InitializeComponent,谢谢@mjwills的注释!

DataTable dt = new DataTable();
    //InitializeComponent();
    string str = @"Provider=Microsoft.ACE.OLEDB.12.0;Data Source=C:\Users\B8328\source\repos\KaihatsuEnshuu\KaihatsuEnshuu\OI21Database1.accdb";
    OleDbConnection con = new OleDbConnection(str);
本文链接:https://www.f2er.com/3119797.html

大家都在问