Фильтрация DataGridView через несколько полей со списком - PullRequest
0 голосов
/ 11 декабря 2018

В настоящее время я работаю над проектом приложения для формы Windows, чтобы импортировать данные файла Excel в таблицу данных и применять фильтры на основе полей со списком.Я сделал с импортом данных.Я полагаю, что следующая часть должна применить код фильтрации в кнопке для фильтрации, и это то, где я сейчас застрял.Заранее спасибо.

Приложение "Мои формы Windows"

Фрагмент моего кода для импорта и отображения данных.

private void btnOpen_Click(object sender, EventArgs e)
    {
        try
        {
            string constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + tb_path.Text + ";Extended Properties = \"Excel 12.0; HDR=YES;\" ; ";
            OleDbConnection con = new OleDbConnection(constr);
            OleDbDataAdapter sda = new OleDbDataAdapter("Select * From [" + dropdown_sheet.SelectedValue + "]", con);
            sda.Fill(dt);

            foreach (DataRow row in dt.Rows)
            {
                dataGridView.DataSource = dt;
            }

            comboBox1.Items.Clear();
            foreach (DataGridViewRow row in dataGridView.Rows) 
            {
                comboBox1.Items.Add(row.Cells[0].Value.ToString());
                comboBox2.Items.Add(row.Cells[1].Value.ToString());
                comboBox3.Items.Add(row.Cells[2].Value.ToString());
                comboBox4.Items.Add(row.Cells[3].Value.ToString());
                comboBox5.Items.Add(row.Cells[4].Value.ToString());
                comboBox6.Items.Add(row.Cells[5].Value.ToString());
                comboBox7.Items.Add(row.Cells[6].Value.ToString());
                comboBox8.Items.Add(row.Cells[7].Value.ToString());
                comboBox9.Items.Add(row.Cells[8].Value.ToString());
                comboBox10.Items.Add(row.Cells[9].Value.ToString());
                comboBox11.Items.Add(row.Cells[10].Value.ToString());
            }

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

private void button1_Click(object sender, EventArgs e)
    {
        try
        {
            OpenFileDialog openfile = new OpenFileDialog();
            openfile.Filter = "Excel Files | *.xlsx; *.xls; * .xlsm";

            if (openfile.ShowDialog() == System.Windows.Forms.DialogResult.OK)
            {
                this.tb_path.Text = openfile.FileName;
            }

            string constr = "Provider=Microsoft.ACE.OLEDB.12.0;Data Source=" + tb_path.Text + ";Extended Properties = \"Excel 12.0; HDR=YES;\" ; ";
            OleDbConnection con = new OleDbConnection(constr);
            con.Open();

            dropdown_sheet.DataSource = con.GetOleDbSchemaTable(OleDbSchemaGuid.Tables, null);
            dropdown_sheet.DisplayMember = "TABLE_NAME";
            dropdown_sheet.ValueMember = "TABLE_NAME";

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

1 Ответ

0 голосов
/ 11 декабря 2018

Вы найдете очень хороший способ реализовать пользовательский интерфейс фильтрации в представлении данных, прочитав следующую статью.

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

MSDN - Создание раскрывающегося списка фильтров для ячейки заголовка столбца DataGridView

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...