저는 TextBox를 ajax 캘린더 익스텐더와 TextChanged 이벤트에서 다음과 같이 호출했습니다 : "txtFromDate_TextChanged" 함수를 호출했습니다.문자열을 DateTime으로 변환 할 수 없습니다.
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# 코드 : 제가 Visual Studio를 통해 디버깅 할 때
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") + "'";
}
}
이 코드는 모두 잘 작동하고 심지어 내가 내 로컬에있는 사이트를 호스팅 할 때 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'를 사용해야한다는 것입니다. –