我使用ajax日历扩展器和TextChanged事件关注TextBox,我打电话给“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#代码:
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);
但我没有发现此代码中的任何错误。 这段代码从visual studio或托管在IIS上工作得很好,但我完全困惑为什么托管在托管服务器上时它不工作。我完全困惑。请帮助我。
那么什么是'txtFromDate.Text'的价值?为什么动态构建SQL而不是使用参数化SQL?我的猜测是问题在于服务器使用系统本地文化,并且您应该使用指定不变文化的“DateTime.ParseExact”。 –