Фильтр даты для DataGridView - PullRequest
0 голосов
/ 28 мая 2019

Мне нужно сделать фильтр даты для DataGridView, который получает данные по этому коду

    DataSet dataSet = new DataSet();
    OleDbDataAdapter dataAdapter = new OleDbDataAdapter();
    OleDbDataAdapter dataAdapter1 = new OleDbDataAdapter();

    string query = "select * from Договор";
    string query1 = "select * from Поставщики";

    conn = new OleDbConnection(conn_string);

    dataAdapter.SelectCommand = new OleDbCommand(query, conn);
    dataAdapter1.SelectCommand = new OleDbCommand(query1, conn);

    dataAdapter.TableMappings.Add("Table", "Договор");
    dataAdapter1.TableMappings.Add("Table", "Поставщики");

    dataAdapter.Fill(dataSet);
    dataAdapter1.Fill(dataSet);

    BindingSource dogSource = new BindingSource();
    dogSource.DataSource = dataSet;
    dogSource.DataMember = "Договор";
    dataGridView1.DataSource = dogSource;

    BindingSource postSource = new BindingSource();
    postSource.DataSource = dataSet;
    postSource.DataMember = "Поставщики";

    DataGridViewComboBoxColumn comboColumn = new DataGridViewComboBoxColumn();
    comboColumn.HeaderText = "Поставщики";
    comboColumn.DataSource = postSource;

    comboColumn.DataPropertyName = "Код поставщика";

    comboColumn.DisplayMember = "Название";

    comboColumn.ValueMember = "Код поставщика";

Раньше я фильтровал данные с помощью этого кода, но теперь он не работает, я думаю, из-за DataSource.

    DataView dv = new DataView(dt);
    dv.RowFilter = string.Format(" CONVERT([Дата заключения], 'System.DateTime') >= '{0:dd.MM.yyyy}' AND CONVERT([Дата заключения], 'System.DateTime') <= '{0:dd.MM.yyyy}'",
    dateTimePicker1.Value.ToShortDateString());;
    dataGridView1.DataSource=dv;

Я буду признателен за любую помощь, спасибо.

1 Ответ

1 голос
/ 28 мая 2019

Не уверен, что это правильно, но у меня все получилось.

DataTable all = dataSet.Tables[0];
DataView dv = new DataView(all);
dv.RowFilter = string.Format(" [Дата заключения] >= '{0:dd.MM.yyyy}' AND [Дата заключения] <= '{0:dd.MM.yyyy}'", dateTimePicker1.Value.ToShortDateString());
dataGridView1.DataSource=dv;
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...