[IndexOutOfRangeException: publishID]
   System.Data.ProviderBase.FieldNameLookup.GetOrdinal(String fieldName) +5002922
   System.Data.SqlClient.SqlDataReader.GetOrdinal(String name) +67
   CS.SQLServerDAL.Publish.GetMainPublishs() in F:\网站目录\CS_Shop\SQLServerDAL\book\Publish.cs:44
   CS.BLL.Publish.GetMainPublishs() in F:\网站目录\CS_Shop\BLL\book\Publish.cs:27
   Control_Viewleft.BindDataList() +15
   Control_Viewleft.Page_Load(Object sender, EventArgs e) +36
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +14
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +35
   System.Web.UI.Control.OnLoad(EventArgs e) +91
   System.Web.UI.Control.LoadRecursive() +74
   System.Web.UI.Control.LoadRecursive() +146
   System.Web.UI.BasePartialCachingControl.LoadRecursive() +49
   System.Web.UI.Control.LoadRecursive() +146
   System.Web.UI.Control.LoadRecursive() +146
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2207每一行后面的数字代表是什么意思,还有红色的那部分是我本机的路径,可是我网站已经传到服务器上了,怎么会显示我本机的路径呢,求高手指点,在线等

解决方案 »

  1.   


    IndexOutOfRangeException提示很明显了。。自己调试。。publishID是什么值。。
      

  2.   

    数字代表代码行数应该是索引超界了,publishID 这个id有问题  debug一下
      

  3.   


      IndexOutOfRangeException,索引越界。可能是本地表中的信息和服务器不一样,用服务器的数据测试一下试试。
      

  4.   

    DLL  不是你最新的,还找你本机上的路径
      

  5.   

    问题明面上的原因是“索引越界”
    但是我们大体上可以去猜测一下,代码问题1.既然使用了“索引”,那就是说,你使用了xxx[publishID],那么你在使用前是否检查过xxx.count到底是多少没有2.如果问题时好时坏,一个最常见的毛病是,DAL处理有误,很多人往往因为所谓的效率问题,莫名其妙地使用了static关键字。静态方法没问题,但是对于静态属性,静态字段你要小心处理。比如如果公用static dataset,datatable,那么在某个时刻查询异常代码并没有更新这个static属性,那么后面使用的就是 旧的数据,此刻你在去按你想像中的正确索引去找他,他自然会有错误