Каков наилучший способ фильтрации по дате, когда дата разбита на 2 целых числа, месяц и год? - PullRequest
0 голосов
/ 03 ноября 2010

У меня есть DataTable, дата которого разбита по месяцам и годам. Мне нужно отфильтровать по дате, поэтому я думал о добавлении столбца с выражением, чтобы получить истинный столбец DateTime. Это лучший способ справиться с этим? Может ли «Конвертировать» сделать это? Что-то вроде ...

dt.Columns.Add("RealDate", typeof(DateTime), "Convert(Month + '/1/' + Year, 'System.DateTime')");

Ответы [ 2 ]

1 голос
/ 03 ноября 2010

Я бы выполнил преобразование в SQL, который заполняет DataTable.Это может быть встроенный SQL, хранимая процедура или ORM.

Пусть ядро ​​базы данных сделает всю работу. Не тратьте много ресурсов на выполнение этих преобразований и вычислений в своем приложении.

Редактировать : Если вы не можете изменить процесс, генерирующий DataTable, вы можете отфильтровать его с помощью DataView RowFilter, например:

DataView dataView = dataTable1.DefaultView;
dataView.RowFilter = string.Format("Month = '{0}' && Year = '{1}'", Month, Year);

Вот потрясающая страница примеров с демонстрациями и кодом .

0 голосов
/ 16 февраля 2011

Поскольку никто не ответил, я повторю код, который я использовал:

dt.Columns.Add("RealDate", typeof(DateTime), "Convert(Month + '/1/' + Year, 'System.DateTime')");
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...