我想我整理了我的GridView1_PageIndexChanged事件并认为它应该可行

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

但是,当我现在尝试访问x的第2页时,我会收到以下内容:

'/ project'应用程序中的服务器错误。 此提供程序仅支持Skip()返回有序查询,返回包含所有标识列的实体或投影,其中查询是单表(非连接)查询,或者是Distinct,Except,Intersect或Union(不是Concat)操作。

我对此感到有点困惑,除非我失明,否则我不会使用跳过,除非我失明了?

我目前正在使用SQL2000,这是一个与这个SQL实例直接相关的问题吗?

有帮助吗?

解决方案

您使用的是LINQ to SQL吗?这个问题似乎是SQL Server 2000独有的。请参阅疑难解答中的这些MSDN文章(LINQ to SQL)标准查询运算符转换(LINQ to SQL)了解更多信息。

修改

以前曾提出类似问题,请参阅: LINQ,Skip,OrderBy和SQL Server 2000

其他提示

控件正在使用Skip来获取它应该显示的特定页面的记录。

在SQL Server中,查询没有默认排序(除非它是带有聚簇索引的直接表),因此您必须在查询中指定数据源的顺序。查询的结果必须具有特定的顺序;如果订单在页面之间发生变化,那么在页面之间进行页面更改是没有意义的,这样您就可以从每个页面的结果中随机选择一些记录。

目前我的linq查询是订购的......我想这不是前进的方式,还是我误解了你?

私有对象GetMaterialData(字符串MemberKey,字符串MaterialType,字符串MaterialLevel,int Count)     {         ORWeightsDataClassesDataContext db = newORWeightsDataClassesDataContext();         var query = db.tblOnlineReportingCOMPLETEWeights                     .Where(x => x.MaterialLevel == MaterialLevel&& x.MaterialText == MaterialType&& x.MemberId == MemberKey)                     .OrderByDescending(x => x.ProductPercentage)。取(计数);         返回查询;     }

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top