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

消息队列 长度不能小于 0。 参数名: length

长度不能小于 0。
参数名: length

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

异常详细信息: System.ArgumentOutOfRangeException: 长度不能小于 0。
参数名: length

源错误: 

执行当前 Web 请求期间生成了未处理的异常。可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息。

堆栈跟踪: 

麻烦各位给看一下,谢谢
[ArgumentOutOfRangeException: 长度不能小于 0。
参数名: length]
   System.String.InternalSubStringWithChecks(Int32 startIndex, Int32 length, Boolean fAlwaysCopy) +7495991
   System.String.Substring(Int32 startIndex, Int32 length) +11
   Maticsoft.Web.inc.top.Bind() in D:\work\ThreelayerSolution\Web\inc\top.ascx.cs:39
   Maticsoft.Web.inc.top.Page_Load(Object sender, EventArgs e) in D:\work\ThreelayerSolution\Web\inc\top.ascx.cs:22
   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) +99
   System.Web.UI.Control.LoadRecursive() +50
   System.Web.UI.Control.LoadRecursive() +141
   System.Web.UI.Control.LoadRecursive() +141
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +627 --------------------编程问答-------------------- 先判断下吧
if(length>0) 
然后在执行啊 --------------------编程问答--------------------
引用 1 楼 cc5258 的回复:
先判断下吧
if(length>0) 
然后在执行啊
加上了判断了,但是还是报错 --------------------编程问答--------------------
引用 2 楼 moonwrong 的回复:
Quote: 引用 1 楼 cc5258 的回复:

先判断下吧
if(length>0) 
然后在执行啊
加上了判断了,但是还是报错

把你出错的代码贴出来。。。 --------------------编程问答-------------------- 代码呢?
判断前再加个是否null --------------------编程问答--------------------
引用 3 楼 qy1116 的回复:
Quote: 引用 2 楼 moonwrong 的回复:

Quote: 引用 1 楼 cc5258 的回复:

先判断下吧
if(length>0) 
然后在执行啊
加上了判断了,但是还是报错

把你出错的代码贴出来。。。
 void Bind()
        {
            DataSet ds = new Maticsoft.BLL.Tab_GuangGao().GetList(8, " type='3'", " addTime 

desc");
            String pics = null;
            String links = null;
            String texts = null;

            foreach (DataRow row in ds.Tables[0].Rows)
            {
                pics += row["address"] + "|";
                links += row["link"] + "|";
                texts += row["title"] + "|";
            }

            if(pics.Length  >= 1 && texts.Length>= 1 &&  links.Length>= 1)
            {
img_hidden.Value = pics.Substring(0, pics.Length);
title_hidden.Value = texts.Substring(0, texts.Length);
link_hidden.Value = links.Substring(0, links.Length);
            }
   
        }
--------------------编程问答--------------------
引用 5 楼 moonwrong 的回复:
Quote: 引用 3 楼 qy1116 的回复:

Quote: 引用 2 楼 moonwrong 的回复:

Quote: 引用 1 楼 cc5258 的回复:

先判断下吧
if(length>0) 
然后在执行啊
加上了判断了,但是还是报错

把你出错的代码贴出来。。。
 void Bind()
        {
            DataSet ds = new Maticsoft.BLL.Tab_GuangGao().GetList(8, " type='3'", " addTime 

desc");
            String pics = null;
            String links = null;
            String texts = null;

            foreach (DataRow row in ds.Tables[0].Rows)
            {
                pics += row["address"] + "|";
                links += row["link"] + "|";
                texts += row["title"] + "|";
            }

            if(pics.Length  >= 1 && texts.Length>= 1 &&  links.Length>= 1)
            {
img_hidden.Value = pics.Substring(0, pics.Length);
title_hidden.Value = texts.Substring(0, texts.Length);
link_hidden.Value = links.Substring(0, links.Length);
            }
   
        }


 String pics = null;
             String links = null;
             String texts = null;

这里定义改成String pics = "";
             String links = "";
             String texts = ""
再试试 --------------------编程问答--------------------
引用 6 楼 qy1116 的回复:
Quote: 引用 5 楼 moonwrong 的回复:

Quote: 引用 3 楼 qy1116 的回复:

Quote: 引用 2 楼 moonwrong 的回复:

Quote: 引用 1 楼 cc5258 的回复:

先判断下吧
if(length>0) 
然后在执行啊
加上了判断了,但是还是报错

把你出错的代码贴出来。。。
 void Bind()
        {
            DataSet ds = new Maticsoft.BLL.Tab_GuangGao().GetList(8, " type='3'", " addTime 

desc");
            String pics = null;
            String links = null;
            String texts = null;

            foreach (DataRow row in ds.Tables[0].Rows)
            {
                pics += row["address"] + "|";
                links += row["link"] + "|";
                texts += row["title"] + "|";
            }

            if(pics.Length  >= 1 && texts.Length>= 1 &&  links.Length>= 1)
            {
img_hidden.Value = pics.Substring(0, pics.Length);
title_hidden.Value = texts.Substring(0, texts.Length);
link_hidden.Value = links.Substring(0, links.Length);
            }
   
        }


 String pics = null;
             String links = null;
             String texts = null;

这里定义改成String pics = "";
             String links = "";
             String texts = ""
再试试
改过来试了,还是不行, --------------------编程问答--------------------
引用 7 楼 moonwrong 的回复:
Quote: 引用 6 楼 qy1116 的回复:

Quote: 引用 5 楼 moonwrong 的回复:

Quote: 引用 3 楼 qy1116 的回复:

Quote: 引用 2 楼 moonwrong 的回复:

Quote: 引用 1 楼 cc5258 的回复:

先判断下吧
if(length>0) 
然后在执行啊
加上了判断了,但是还是报错

把你出错的代码贴出来。。。
 void Bind()
        {
            DataSet ds = new Maticsoft.BLL.Tab_GuangGao().GetList(8, " type='3'", " addTime 

desc");
            String pics = null;
            String links = null;
            String texts = null;

            foreach (DataRow row in ds.Tables[0].Rows)
            {
                pics += row["address"] + "|";
                links += row["link"] + "|";
                texts += row["title"] + "|";
            }

            if(pics.Length  >= 1 && texts.Length>= 1 &&  links.Length>= 1)
            {
img_hidden.Value = pics.Substring(0, pics.Length);
title_hidden.Value = texts.Substring(0, texts.Length);
link_hidden.Value = links.Substring(0, links.Length);
            }
   
        }


 String pics = null;
             String links = null;
             String texts = null;

这里定义改成String pics = "";
             String links = "";
             String texts = ""
再试试
改过来试了,还是不行,


额,  String pics = null;  String  改成小写string --------------------编程问答--------------------
引用 8 楼 qy1116 的回复:
Quote: 引用 7 楼 moonwrong 的回复:

Quote: 引用 6 楼 qy1116 的回复:

Quote: 引用 5 楼 moonwrong 的回复:

Quote: 引用 3 楼 qy1116 的回复:

Quote: 引用 2 楼 moonwrong 的回复:

Quote: 引用 1 楼 cc5258 的回复:

先判断下吧
if(length>0) 
然后在执行啊
加上了判断了,但是还是报错

把你出错的代码贴出来。。。
 void Bind()
        {
            DataSet ds = new Maticsoft.BLL.Tab_GuangGao().GetList(8, " type='3'", " addTime 

desc");
            String pics = null;
            String links = null;
            String texts = null;

            foreach (DataRow row in ds.Tables[0].Rows)
            {
                pics += row["address"] + "|";
                links += row["link"] + "|";
                texts += row["title"] + "|";
            }

            if(pics.Length  >= 1 && texts.Length>= 1 &&  links.Length>= 1)
            {
img_hidden.Value = pics.Substring(0, pics.Length);
title_hidden.Value = texts.Substring(0, texts.Length);
link_hidden.Value = links.Substring(0, links.Length);
            }
   
        }


 String pics = null;
             String links = null;
             String texts = null;

这里定义改成String pics = "";
             String links = "";
             String texts = ""
再试试
改过来试了,还是不行,


额,  String pics = null;  String  改成小写string


我发现删掉这个文件还是报一样的错,而且这个路径D:\work\ThreelayerSolution\Web\inc\top.ascx.cs也和服务器上面的路径不一致 --------------------编程问答-------------------- 你直接调试  之后把出错的截图上来吧。。。 --------------------编程问答-------------------- 报错似乎是在  Substring 的时候 第2个参数截取的长度 超过了
补充:.NET技术 ,  C#
CopyRight © 2022 站长资源库 编程知识问答 zzzyk.com All Rights Reserved
部分文章来自网络,