Question

Je pense avoir trié mon événement GridView1_PageIndexChanged et pensé que cela devrait fonctionner

 protected void GridView1_PageIndexChanging(object sender, GridViewPageEventArgs e)
{
    GridView1.DataSourceID = "lqPackWeights";
    GridView1.PageIndex = e.NewPageIndex;
}

Cependant, lorsque je tente maintenant d'accéder à la page 2 de x, je reçois le message suivant:

Erreur de serveur dans l'application '/ projet'. Ce fournisseur prend en charge Skip () uniquement sur les requêtes ordonnées renvoyant des entités ou des projections contenant toutes les colonnes d'identité, la requête étant une requête à une seule table (non jointe) ou une requête distincte, exception, intersection ou Union (sans concatte). opération.

Cela me laisse un peu perplexe, je n'utilise pas skip aussi loin que je peux voir à moins de devenir aveugle?

J'utilise actuellement SQL2000, s'agit-il d'un problème directement lié à cette instance de SQL?

Était-ce utile?

La solution

Utilisez-vous LINQ to SQL? Le problème semble unique à SQL Server 2000. Consultez ces articles MSDN sur Résolution des problèmes (LINQ to SQL) et Traduction de l'opérateur de requête standard (LINQ vers SQL) pour plus d'informations.

MODIFIER

Une question similaire a déjà été posée, voir: LINQ, Passer, Commander, Par et SQL Server 2000

Autres conseils

Le contrôle utilise Skip pour accéder aux enregistrements de la page spécifique qu'il est censé afficher.

Dans SQL Server, il n'y a pas de classement par défaut pour les requêtes (sauf s'il s'agit d'une table directe avec un index clusterisé). Vous devez donc spécifier un ordre dans la requête pour la source de données. Le résultat de la requête doit avoir un ordre spécifique. cela n'a pas de sens de faire défiler un résultat si l'ordre change d'une page à l'autre, de façon à obtenir plus ou moins un choix aléatoire d'enregistrements dans le résultat pour chaque page.

Actuellement, ma requête linq est ordonnée ... Je suppose que ce n'est pas la voie à suivre ou est-ce que je vous ai mal compris?

objet privé GetMaterialData (chaîne MemberKey, chaîne MaterialType, chaîne MaterialLevel, int Count)     {         ORWeightsDataClassesDataContext db = newORWeightsDataClassesDataContext ();         var requête = db.tblOnlineReportingCOMPLETEWeights                     .Where (x = > x.MaterialLevel == MaterialLevel & amp; & amp; x.MaterialText == MaterialType & amp; & amp; & amp; x.MemberId == MemberKey)                     .OrderByDescending (x = & x; x.ProductPercentage) .Take (Count);         renvoyer la requête;     }

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top