Ответ 1
Вам нужно привязать свои даты к #, а не апострофам.
dvFormula.RowFilter = "#" + startDate.ToString("MM/dd/yyyy") + "# < EndDate OR EndDate = #1/1/1900#";
Я почесываю голову над чем-то довольно глупым, но, по-видимому, трудно.
DataView dvFormula = dsFormula.Tables[0].DefaultView;
dvFormula.RowFilter = "'" + startDate.ToString("yyyyMMdd") + "' < EndDate OR EndDate = '19000101'";
dvFormula.Sort = "FromDate ASC";
В результате получится следующее:
Невозможно выполнить '<' операции в System.String и System.DateTime.
Скажите, пожалуйста, какой лучший способ решить эту проблему.
Очень ценно!
Вам нужно привязать свои даты к #, а не апострофам.
dvFormula.RowFilter = "#" + startDate.ToString("MM/dd/yyyy") + "# < EndDate OR EndDate = #1/1/1900#";
Это решение. Попробуйте следующее:
filter = " (Date >= #" +
Convert.ToDateTime(txtFromDate.Text).ToString("MM/dd/yyyy") +
"# And Date <= #" +
Convert.ToDateTime(txtToDate.Text).ToString("MM/dd/yyyy") +
"# ) ";
В зависимости от поставщика данных вам может понадобиться избегать дат с символом #
, а не с символом '
. Кроме того, я отформатировал ваши даты в формате YYYY-MM-DD
, чтобы убедиться, что он правильно распознан как дата.