紧急求助,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时,怎么办? --------------------编程问答--------------------
对的。RecordSize也不能是负数。
Skip和Take不像List的Index,即便你试图去取没有的分页,也不会出错,只是不返回数据。
补充:.NET技术 , LINQ