2010-11-03 23 views
0

J'ai un DataTable qui a une date décomposée par Mois & Année. J'ai besoin de filtrer par date donc je pensais à ajouter une colonne avec une expression pour obtenir une vraie colonne DateTime. Est-ce la meilleure façon de gérer cela? Est-ce que 'Convert' peut le faire? Quelque chose comme ...Quel est le meilleur moyen de filtrer par date lorsque la date est éclatée en 2 entiers, Mois et Année?

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

Répondre

0

Comme personne ne répondait, je vais répéter le code je:

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

Je voudrais effectuer la transformation dans le SQL qui remplit le DataTable. Cela peut être un code SQL intégré, une procédure stockée ou un ORM.

Laissez le moteur de base de données faire le travail. Ne dépensez pas beaucoup de ressources pour effectuer ces transformations et calculs dans votre application.

Modifier: Si vous ne pouvez pas modifier le processus générant DataTable, vous pouvez filtrer à l'aide d'un DataView RowFilter, comme ceci:

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

Here's a terrific page of examples, with demos and code.

+0

Moi aussi, mais tout ce que j'ai est le DataTable à travailler avec. – Homer

+0

Cela ne fonctionnerait pas pour quelque chose comme Date> '8/8/08' – Homer

+0

Oui, Homer, vous pouvez écrire le filtre pour inclure le jour, et vous pouvez utiliser supérieur ou supérieur à/égal à. – DOK