当前位置:编程学习 > C#/ASP.NET >>

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

“/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 --------------------编程问答-------------------- 没人么?自己顶下先 --------------------编程问答-------------------- VDBPager1.RecordSize是多少? --------------------编程问答-------------------- GridView1.DataSource = user.Skip((index - 1) * VDBPager1.RecordSize).Take(VDBPager1.RecordSize)

当你的index=0时,怎么办? --------------------编程问答--------------------
引用 3 楼 q107770540 的回复:
GridView1.DataSource = user.Skip((index - 1) * VDBPager1.RecordSize).Take(VDBPager1.RecordSize)

当你的index=0时,怎么办?

对的。RecordSize也不能是负数。

Skip和Take不像List的Index,即便你试图去取没有的分页,也不会出错,只是不返回数据。
补充:.NET技术 ,  LINQ
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,