Domanda

Penso di aver risolto il mio evento GridView1_PageIndexChanged e di pensare che dovrebbe funzionare

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

Tuttavia, quando provo ora ad accedere alla pagina 2 di x, ricevo quanto segue:

Errore del server nell'applicazione '/ project'. Questo provider supporta Skip () solo su query ordinate che restituiscono entità o proiezioni che contengono tutte le colonne di identità, in cui la query è una query a tabella singola (non unita) oppure è Distinct, Except, Intersect o Union (non Concat) operazione.

Sono un po 'confuso da questo, non sto usando skip per quanto posso vedere a meno che non diventi cieco?

Attualmente sto usando SQL2000, è un problema direttamente correlato a questa istanza di SQL?

È stato utile?

Soluzione

Stai usando LINQ to SQL? Il problema sembra unico per SQL Server 2000. Vedi questi articoli MSDN su Risoluzione dei problemi (LINQ to SQL) e Traduzione di operatori di query standard (LINQ to SQL) per ulteriori informazioni.

Modifica

In precedenza è stata posta una domanda simile, vedere: LINQ, Skip, OrderBy e SQL Server 2000

Altri suggerimenti

Il controllo utilizza Salta per accedere ai record per la pagina specifica che dovrebbe visualizzare.

In SQL Server non esiste un ordinamento predefinito per le query (a meno che non sia una tabella diretta con un indice cluster), quindi è necessario specificare un ordine nella query per l'origine dati. Il risultato della query deve avere un ordine specifico; non ha senso sfogliare un risultato se l'ordine cambia da una pagina all'altra in modo da ottenere più o meno una scelta casuale di record dal risultato per ogni pagina.

Attualmente la mia query linq è ordinata ... Immagino che non sia la strada da seguire o ti sto fraintendendo?

oggetto privato GetMaterialData (string MemberKey, string MaterialType, string MaterialLevel, int Count)     {         ORWeightsDataClassesDataContext db = newORWeightsDataClassesDataContext ();         var query = db.tblOnlineReportingCOMPLETEWeights                     .Where (x = > x.MaterialLevel == MaterialLevel & amp; & amp; x.MaterialText == MaterialType & amp; & amp; x.MemberId == MemberKey)                     .OrderByDescending (x = > x.ProductPercentage) .Take (Count);         query di ritorno;     }

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top