Мой dataGridView_flaggedComments
имеет, скажем, 10 строк. Значение в ячейке столбца Comments_Date
показывает даты в формате 31/12/2014 12:01 PM
, если я выбираю дату (которая без временной части) от comboBox_stockDates
(например, 31/12/2014), я хочу, чтобы она фильтровала (и отображала) все строки, которые есть 31/12/2014 xx:xx xx
.DataGridView RowFilter По дате
Приведенный ниже код даст нулевой результат, даже если выбранная дата (например, 31/12/2014) соответствует строкам, которые содержат 31/12/2014 xx:xx xx
. Любая идея, что здесь не так?
string dtFilter = string.Format("Comments_Date = #{0}#", comboBox_stockDates.SelectedItem.ToString());
(dataGridView_flaggedComments.DataSource as DataTable).DefaultView.RowFilter = dtFilter;
В качестве альтернативы, есть ли способ конвертировать обе даты в строку, а затем сравнивать? Я попытался использовать LIKE-оператор, но ошибка говорит, что нельзя сравнивать между DateTime и String.
Любая помощь и руководство были бы высоко оценены! Спасибо. :)
, например, вы могли бы сделать что-то вроде этого 'строку dtFilter = string.Format ("Comments_Date = {0}", DateTime.Now.ToString ("дд/мм/гггг"));' также вы вам не нужно указывать знаки '#' вообще, вам нужно преобразовать значение DateTime в строку, а затем выполнить сравнение, если я правильно вас понимаю – MethodMan
Привет, DJ KRAZE, спасибо за попытку, но это 'string dtFilter = string.Format (" Comments_Date = {0} ", comboBox_stockDates.SelectedItem.ToString());' не будет работать. Ошибка: 'Невозможно выполнить '=' операцию в System.DateTime и System.Double.' – Shyuan
вы можете показать точный текст, который вы получаете из раскрывающегося списка, что я показал, это то, что вы можете использовать в качестве цели тестирования. где вы получаете system.double ..? – MethodMan