Функция для заполнения полей со списком конкретных данных не работает более чем для одного поля со списком одновременно, без явных ошибок - PullRequest
0 голосов
/ 12 ноября 2019

У меня есть функция, которая должна заполнять поля со своими данными. В настоящее время он работает только для одного поля со списком одновременно.

Я пытался скопировать одну и ту же функцию дважды (в основном я просто изменил имена переменных и сделал новую функцию для использования со вторым списком), чтобыпосмотрим, была ли это переменная ошибка, но она все еще не работает. Я перестроил решение, но оно все еще не работает.

это код для функции

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

Я ожидаю, что оба поля со списком в моей форме будут иметь массив значений для выбора, но это всегда будет только тот, который показывает значения (тот, который был запущен первым, поэтому в данном случае - поле со списком клиентов).

1 Ответ

0 голосов
/ 12 ноября 2019

Оказывается, я только закомментировал InitializeComponent внутри hte FillCombobox, спасибо @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);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...