【问题标题】:Server Error due to paging issue由于分页问题导致的服务器错误
【发布时间】:2010-12-20 18:25:00
【问题描述】:

我想我整理了我的 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实例直接相关?

【问题讨论】:

  • 您能否将页面大小赋予 gridviewname.pagesize 属性。在将数据源与 gridview 绑定。
  • 你好 Sikender - 我不太清楚你的意思(请原谅我的无知)。目前,pagesize 设置为 10。

标签: asp.net sql-server-2000 paging


【解决方案1】:

您使用的是 LINQ to SQL 吗?这个问题似乎是 SQL Server 2000 独有的。有关详细信息,请参阅 Troubleshooting (LINQ to SQL)Standard Query Operator Translation (LINQ to SQL) 上的这些 MSDN 文章。

编辑

之前有人问过类似的问题,请参阅:LINQ, Skip, OrderBy, and SQL Server 2000

【讨论】:

  • 我确实在使用 LINQ to SQL。希望我的工作地点快 08 岁了……同时有点不幸!
  • 嗯....我的 linq to sql 查询中有一个 .distinct() 操作。我认为问题出在 .take 上,因为我的语法中甚至没有跳过。剧情变厚了!!!
【解决方案2】:

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

在 SQL Server 中,查询没有默认顺序(除非它是具有聚集索引的直接表),因此您必须在查询中为数据源指定顺序。查询的结果必须有特定的顺序;如果顺序从一个页面到另一个页面发生变化,那么对结果进行分页是没有意义的,以便您从每个页面的结果中或多或少地随机选择记录。

【讨论】:

    【解决方案3】:

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

    私有对象 GetMaterialData(string MemberKey, string MaterialType, string 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).Take(Count); 返回查询; }

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2016-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-09
      相关资源
      最近更新 更多