2010-06-16 3 views
4

Ok, donc c'est peut-être une question stupide, mais je n'arrive pas à le comprendre. Je pensais essayer LINQ contre un DataTable. J'ai fait fonctionner ma requête et maintenant j'essaye de mettre en place une simple pagination.LINQ et pagination avec un DataTable - ne peut pas passer Skip?

DataTable dataTable = null; 

dataTable = GetAllDataTables(); 

var query = from r in dataTable.AsEnumerable() 
      orderby r.Field<string>(Constants.fileName) 
      select r; 

query.Skip(WPP_PAGE_SIZE * pageIndex).Take(WPP_PAGE_SIZE); 

Mon problème est que j'obtiens une erreur à query.Skip (...).

Erreur 1 'System.Data.OrderedEnumerableRowCollection' ne contient pas de définition pour 'Skip' et aucune méthode d'extension 'Skip' accepter un premier argument de type 'System.Data.OrderedEnumerableRowCollection' pourrait être trouvé (? Il vous manque un en utilisant la directive ou une référence Assemblée )

Références Je:

  • Microsoft.SharePoint
  • Système
  • System.Core
  • System.Data
  • System.Data.DataSetExtensions
  • System.Web
  • System.XML

Qu'est-ce que Je manque?

+0

Je suppose qu'il ya un 'utilisant System.Linq' – SWeko

Répondre

7

Vous devez using System.Linq; en haut de votre fichier.

Un deuxième problème est que vous devez affecter le résultat de Skip et prendre quelque chose sinon le résultat est tout simplement mis au rebut:

var query2 = query.Skip(WPP_PAGE_SIZE * pageIndex).Take(WPP_PAGE_SIZE); 
+0

... Aïe On dirait que j'ai eu plus d'une erreur! –

2
using System.Linq? 
Questions connexes