急!急!急!索引和长度必须引用该字符串内的位置错误,参数名: length

时间:2021-08-21 10:50:47
“/”应用程序中的服务器错误。

索引和长度必须引用该字符串内的位置。
参数名: length

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

异常详细信息: System.ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。
参数名: length

源错误: 


行 64:                 valHtml.Append("    </td>");
行 65:                 valHtml.Append("    <td style=\"color:#B7B7B7\">");
行 66:                 valHtml.Append("      ( " + dr["PulbishTime"].ToString().Substring(0,10) + ") ");
行 67:                 valHtml.Append("    </td>");
行 68:                 valHtml.Append("</tr>");

源文件: c:\inetpub\wwwroot\myjob\index.aspx.cs    行: 66 

堆栈跟踪: 


[ArgumentOutOfRangeException: 索引和长度必须引用该字符串内的位置。
参数名: length]
   System.String.InternalSubStringWithChecks(Int32 startIndex, Int32 length, Boolean fAlwaysCopy) +10083684
   index.Page_Load(Object sender, EventArgs e) in c:\inetpub\wwwroot\myjob\index.aspx.cs:66
   System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp, Object o, Object t, EventArgs e) +25
   System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender, EventArgs e) +42
   System.Web.UI.Control.OnLoad(EventArgs e) +132
   System.Web.UI.Control.LoadRecursive() +66
   System.Web.UI.Page.ProcessRequestMain(Boolean includeStagesBeforeAsyncPoint, Boolean includeStagesAfterAsyncPoint) +2428

5 个解决方案

#1


dr["PulbishTime"].ToString().Substring(0,10) 应该是这一句有问题,dr["PulbishTime"].ToString()没有10个字符。

#2


Substring(0,10)取得位置有问题,或许字段内容不够10个

#3


 valHtml.Append(" ( " + dr["PulbishTime"].ToString().Substring(0,10) + ") ");

字符串长度没有10个那么长了。

#4


dr["PulbishTime"].ToString()
时间字符串你的估计是 2012-7-6 这样的话,你根本去不到10个字符的  2012-07-06这样的才可以。

其实你可以这样
valHtml.Append(" ( " +  DateTime.Parse(dr["PulbishTime"].ToString()).ToString("yyyy-MM-dd") + ") ");

#5


((DateTime)(dr["PulbishTime"])).ToString("yyyy-MM-dd")

#1


dr["PulbishTime"].ToString().Substring(0,10) 应该是这一句有问题,dr["PulbishTime"].ToString()没有10个字符。

#2


Substring(0,10)取得位置有问题,或许字段内容不够10个

#3


 valHtml.Append(" ( " + dr["PulbishTime"].ToString().Substring(0,10) + ") ");

字符串长度没有10个那么长了。

#4


dr["PulbishTime"].ToString()
时间字符串你的估计是 2012-7-6 这样的话,你根本去不到10个字符的  2012-07-06这样的才可以。

其实你可以这样
valHtml.Append(" ( " +  DateTime.Parse(dr["PulbishTime"].ToString()).ToString("yyyy-MM-dd") + ") ");

#5


((DateTime)(dr["PulbishTime"])).ToString("yyyy-MM-dd")