紧急求助,asp.net(vb.net)使用linq skip时出现超出范围

thesoundofpassing 2012-12-17 07:13:01
“/VSE”应用程序中的服务器错误。

指定的参数已超出有效值的范围。
参数名: skipCount

说明: 执行当前 Web 请求期间,出现未处理的异常。请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息。

异常详细信息: System.ArgumentOutOfRangeException: 指定的参数已超出有效值的范围。
参数名: skipCount

源错误:


行 43: .Urmark = uitem.RewardMark}
行 44: GridView1.DataSource = user.Skip((index - 1) * VDBPager1.RecordSize).Take(VDBPager1.RecordSize)
行 45: GridView1.DataBind()
行 46: Else
行 47: Dim user = From uitem In se.tb_user _

源文件: E:\asp.net\VSE\Admin\UserManager.aspx.vb 行: 45

堆栈跟踪:


[ArgumentOutOfRangeException: 指定的参数已超出有效值的范围。
参数名: skipCount]
System.Data.Linq.SqlClient.QueryConverter.VisitTake(Expression sequence, Expression count) +897129
System.Data.Linq.SqlClient.QueryConverter.VisitSequenceOperatorCall(MethodCallExpression mc) +8941
System.Data.Linq.SqlClient.QueryConverter.VisitMethodCall(MethodCallExpression mc) +74
System.Data.Linq.SqlClient.QueryConverter.VisitInner(Expression node) +1003
System.Data.Linq.SqlClient.QueryConverter.ConvertOuter(Expression node) +79
System.Data.Linq.SqlClient.SqlProvider.BuildQuery(Expression query, SqlNodeAnnotations annotations) +114
System.Data.Linq.SqlClient.SqlProvider.System.Data.Linq.Provider.IProvider.Execute(Expression query) +132
System.Data.Linq.DataQuery`1.System.Collections.Generic.IEnumerable<T>.GetEnumerator() +35
System.Collections.Generic.List`1..ctor(IEnumerable`1 collection) +7666230
System.Linq.Enumerable.ToList(IEnumerable`1 source) +61
System.Data.Linq.Provider.BindingList.Create(DataContext context, IEnumerable`1 sequence) +53
System.Data.Linq.DataQuery`1.GetNewBindingList() +51
System.Data.Linq.DataQuery`1.System.ComponentModel.IListSource.GetList() +15
System.Web.UI.DataSourceHelper.GetResolvedDataSource(Object dataSource, String dataMember) +50
System.Web.UI.WebControls.ReadOnlyDataSource.System.Web.UI.IDataSource.GetView(String viewName) +41
System.Web.UI.WebControls.DataBoundControl.ConnectToDataSourceView() +128
System.Web.UI.WebControls.DataBoundControl.GetData() +4
System.Web.UI.WebControls.DataBoundControl.PerformSelect() +60
System.Web.UI.WebControls.BaseDataBoundControl.DataBind() +73
System.Web.UI.WebControls.GridView.DataBind() +4
Admin_UserManager.LoadData(Int32 index) in E:\asp.net\VSE\Admin\UserManager.aspx.vb:45
Admin_UserManager.VDBPager1_PageChanged(Object sender, PageArgs e) in E:\asp.net\VSE\Admin\UserManager.aspx.vb:74
SelfControls.VDBPager.OnPageChanged(PageChangeType ptype, String args) in E:\asp.net\VSE\SelfControls\VDBPager.vb:194
SelfControls.VDBPager.OnBubbleEvent(Object source, EventArgs args) in E:\asp.net\VSE\SelfControls\VDBPager.vb:208
System.Web.UI.Control.RaiseBubbleEvent(Object source, EventArgs args) +37
System.Web.UI.WebControls.LinkButton.OnCommand(CommandEventArgs e) +118
System.Web.UI.WebControls.LinkButton.RaisePostBackEvent(String eventArgument) +135
System.Web.UI.WebControls.LinkButton.System.Web.UI.IPostBackEventHandler.RaisePostBackEvent(String eventArgument) +10
System.Web.UI.Page.RaisePostBackEvent(IPostBackEventHandler sourceControl, String eventArgument) +13
System.Web.UI.Page.RaisePostBackEvent(NameValueCollection postData) +175
System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +1565
...全文
6025 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
threenewbee 2012-12-17
  • 打赏
  • 举报
回复
引用 3 楼 q107770540 的回复:
GridView1.DataSource = user.Skip((index - 1) * VDBPager1.RecordSize).Take(VDBPager1.RecordSize) 当你的index=0时,怎么办?
对的。RecordSize也不能是负数。 Skip和Take不像List的Index,即便你试图去取没有的分页,也不会出错,只是不返回数据。
q107770540 2012-12-17
  • 打赏
  • 举报
回复
GridView1.DataSource = user.Skip((index - 1) * VDBPager1.RecordSize).Take(VDBPager1.RecordSize) 当你的index=0时,怎么办?
threenewbee 2012-12-17
  • 打赏
  • 举报
回复
VDBPager1.RecordSize是多少?
thesoundofpassing 2012-12-17
  • 打赏
  • 举报
回复
没人么?自己顶下先

8,497

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术 LINQ
社区管理员
  • LINQ
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧