无法将String强制转换为DateTime

时间:2013-08-31 08:24:39

标签: asp.net c#-4.0 datetime ajaxcontroltoolkit textchanged

我使用ajax日历扩展程序跟踪TextBox,而在TextChanged事件中我调用“txtFromDate_TextChanged”函数。

asp代码:

<asp:TextBox ID="txtFromDate" runat="server" AutoPostBack="True" 
                            ontextchanged="txtFromDate_TextChanged"></asp:TextBox>
  asp:CalendarExtender ID="txtFromDate_CalendarExtender" Format="dd/MM/yyyy" runat="server" Enabled="True"
                            TargetControlID="txtFromDate">
                        </asp:CalendarExtender>

c#c​​ode:

protected void txtFromDate_TextChanged(object sender, EventArgs e)
{
  if (txtFromDate.Text != "")
  {
    DateTime fromdate = Convert.ToDateTime(txtFromDate.Text);
    Query = Query + "And   CONVERT(DATETIME, FLOOR(CONVERT(FLOAT, ord_del_date))) >= '" + fromdate.ToString("yyyy'-'MM'-'dd") + "'";

  }
}

当我通过visual studio调试时,甚至当我在本地IIS服务器上托管该站点时,此代码工作正常。 问题是,当我在在线托管服务器上托管网站时,当我从日历中选择日期并调用textchanged事件时,会出现以下错误:

错误:

String was not recognized as a valid DateTime.

我知道因为行而给出错误:

DateTime fromdate = Convert.ToDateTime(txtFromDate.Text);

但我在这段代码中没有发现任何错误。 这个代码在视觉工作室或在IIS上托管时工作得非常好,但我完全感到困惑,为什么它在托管服务器上托管时无效。我完全糊涂了。请帮帮我。

4 个答案:

答案 0 :(得分:2)

尝试将aspx中的日期格式更改为

dd-MMM-yyyy (if you want month)

dd-MM-yyyy (if you want only month)

答案 1 :(得分:1)

试试这个:

IFormatProvider provider = new System.Globalization.CultureInfo("gu-IN", true);
DateTime dtime = DateTime.Parse(txtFromDate.Text, provider, System.Globalization.DateTimeStyles.NoCurrentDateDefault);

答案 2 :(得分:1)

fromdate.ToString("yyyy'-'MM'-'dd")

更改此格式正常工作

fromdate.ToString("yyyy-MM-dd")

答案 3 :(得分:0)

DateTime fromdate = DateTime.ParseExact(txtToDate.Text, "dd/MM/yyyy", null);

Query = Query + "And   CONVERT(DATETIME, FLOOR(CONVERT(FLOAT, ord_del_date))) >= '" + fromdate.ToString("yyyy'-'MM'-'dd") + "'";