Мне нужно сделать фильтр даты для 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;
Буду признателен за любую помощь, спасибо.
@NatPongjardenlarp, да, вы правы, конвертировать не нужно, но все равно он не работает, даже заголовки исчезли, поэтому я уверен, что проблема в строке DataSource, и я понятия не имею, как это исправить.





Не уверен, что это правильно, но это сработало для меня.
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;
Даты не являются строками, поэтому неясно, почему
Дата заключениянужно преобразовывать или почему вы конвертируете даты в строки для сравнения. Существует также достаточное количество других излишеств. В любом случае допускайте, что, возможно, никакие данные не попадают в переданный диапазон