Pregunta

Creo que resolví mi evento GridView1_PageIndexChanged y pienso que debería funcionar

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

Sin embargo, cuando intento acceder a la página 2 de x, recibo lo siguiente:

Error del servidor en la aplicación '/ project'. Este proveedor es compatible con Omitir () solo sobre las consultas ordenadas que devuelven entidades o proyecciones que contienen todas las columnas de identidad, donde la consulta es una consulta de una sola tabla (no unida), o es un Distinct, Except, Intersect o Union (no Concat) operación.

Estoy un poco confundido por esto, no estoy usando saltar hasta donde puedo ver, a menos que me esté quedando ciego.

Actualmente estoy usando SQL2000, ¿es este un problema relacionado directamente con esta instancia de SQL?

¿Fue útil?

Solución

¿Estás usando LINQ to SQL? El problema parece exclusivo de SQL Server 2000. Consulte estos artículos de MSDN en Solución de problemas (LINQ para SQL) y Traducción del operador de consultas estándar (LINQ to SQL) para más información.

EDIT

Una pregunta similar se ha hecho antes, consulte: LINQ, Skip, OrderBy y SQL Server 2000

Otros consejos

El control usa Omitir para acceder a los registros de la página específica que se supone que debe mostrar.

En SQL Server no hay un orden predeterminado para las consultas (a menos que sea una tabla directa con un índice agrupado), por lo que debe especificar un orden en la consulta para el origen de datos. El resultado de la consulta debe tener un orden específico; no tiene sentido hacer una página a través de un resultado si el ordenamiento cambia de una página a otra para que obtenga más o menos una selección aleatoria de registros del resultado para cada página.

Actualmente mi consulta de linq está ordenada ... Supongo que no es el camino a seguir o ¿lo estoy entendiendo mal?

objeto privado GetMaterialData (cadena MemberKey, cadena MaterialType, cadena MaterialLevel, int Count)     {         ORWeightsDataClassesDataContext db = newORWeightsDataClassesDataContext ();         var query = db.tblOnlineReportingCOMPLETEWeights                     .Donde (x = > x.MaterialLevel == MaterialLevel & amp; & amp; x.MaterialText == MaterialType & amp; & amp; x.MemberId == MemberKey)                     .OrderByDescending (x = > x.ProductPercentage) .Take (Count);         consulta de retorno     }

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top