2010-07-30 7 views
0

Je souhaite dynamiser la requête suivante.Requête Dynamic Linq sur Datatable

var t = from r in dt.AsEnumerable() 
orderby r.Field<int>("id") ascending 
select r; 

void query(string sorttype,string sortorder) 

Est-il possbile de changer l'ordre par une partie afin que ceux paramater proviendra des paramètres d'une fonction comme sorttype id ici et sortorder pour croissant.

Répondre

0

Je pense que cela devrait le faire:

IEnumerable query<sorttype>(DataTable dt, string sortorder) { 
    return dt.GetList().OrderBy(row => row.Field<sorttype>(sortorder)); 
} 

Notez que sorttype est un paramètre de type générique, pas une chaîne.

+0

Datatable est Enumerable donc cela ne fonctionnerait pas de cette façon – hrrrr

+0

@hrrrr: vous avez raison, j'ai ajouté un appel à GetList() qui devrait résoudre ce problème. http://msdn.microsoft.com/fr-fr/library/bb338495.aspx – recursive