我有一个搜索功能(由我的前任编写),它将日期范围,ID,可用程序作为输入,并在gridview中显示结果。该功能在大多数情况下工作正常(我已经测试过)但是对于我的应用程序的一个用户,它给出了此错误消息。我无法自己重现此错误以便修复它。不知道出了什么问题!
你们可以帮忙吗?
抛出了类型'System.Web.HttpUnhandledException'的异常。 System.FormatException:String未被识别为有效的DateTime。 在System.DateTimeParse.Parse(String s,DateTimeFormatInfo dtfi,DateTimeStyles样式)
at System.Convert.ToDateTime(String value) 位于d:\ SharedServices \ APP \ ViewFollowupWorkload.aspx.cs中的APP_ViewFollowupWorkload.GetFilterString():第1415行 位于d:\ SharedServices \ APP \ ViewFollowupWorkload.aspx.cs中的APP_ViewFollowupWorkload.Page_Load(Object sender,EventArgs e):第268行 在System.Web.Util.CalliHelper.EventArgFunctionCaller(IntPtr fp,Object o,Object t,EventArgs e)
在System.Web.Util.CalliEventHandlerDelegateProxy.Callback(Object sender,EventArgs e)
在System.Web.UI.Control.OnLoad(EventArgs e)
在System.Web.UI.Control.LoadRecursive()
在System.Web.UI.Page.ProcessRequestMain(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint)
在System.Web.UI.Page.HandleError(例外e)
在System.Web.UI.Page.ProcessRequestMain(布尔includeStagesBeforeAsyncPoint,布尔includeStagesAfterAsyncPoint)
在System.Web.UI.Page.ProcessRequest(Boolean includeStagesBeforeAsyncPoint,Boolean includeStagesAfterAsyncPoint)
在System.Web.UI.Page.ProcessRequest()
在System.Web.UI.Page.ProcessRequestWithNoAssert(HttpContext context) 在System.Web.UI.Page.ProcessRequest(HttpContext context)中 at ASP.app_viewfollowupworkload_aspx.ProcessRequest(HttpContext context)在c:\ WINDOWS \ Microsoft.NET \ Framework \ v2.0.50727 \ Temporary ASP.NET Files \ root \ bad754dd \ a11f74ff \ App_Web_viewfollowupworkload.aspx.ae7ca9bd.uwyek3vs.0.cs:第0行 在System.Web.HttpApplication.CallHandlerExecutionStep.System.Web.HttpApplication.IExecutionStep.Execute()
在System.Web.HttpApplication.ExecuteStep(IExecutionStep step,Boolean& completedSynchronously)
以下是产生错误的.cs文件代码:
if (txtDateTo.ToString() != string.Empty)
{
if (txtDateTo.ToString().Length > 2)
strFilter = strFilter + " AND submission_date <= ''" + Convert.ToString(Convert.ToDateTime(txtDateTo.ToString()) + new TimeSpan(1, 0, 0, 0)) + "''";
}
答案 0 :(得分:5)
错误表示txtDateTo
的传递值不是有效的DateTime
- 比如32/11/2011
。
您可以使用DateTime.TryParse
重载之一将代码更改为不会引发异常的代码。这不会解析无效值,但会避免抛出异常 - 在这种情况下你还需要确定要做什么。
答案 1 :(得分:0)
尝试使用ParseExact - 在这里(MSDN)
也许他们使用了一些不寻常的日期时间格式。询问您的用户文本框中的哪个值用于转换为日期时间。