2009-04-26 46 views
3

日期我一直以來有使用日期這個問題「曾經」如何驗證在asp.net

我住在這裏,我們使用了英國的日期格式例如一個國家dd/mm/yyyy,但每次我嘗試對美國服務器上託管的SQL數據庫執行查詢時,100%的時間都會遇到錯誤。

Convert.ToDateTime("2007-17-5")產生錯誤,因爲Convert.ToDateTime("2007-5-17")也會產生錯誤。

許多驗證方法,許多t-sql查詢和許多其他方法我試過,並在我的大部分項目中部分解決,但是,我想知道是否有人有通用方法將字符串轉換爲日期那不會造成任何問題?

或任何有關處理日期的好資源?

-----------編輯... -----------------

即使我正確的格式中的日期,查詢到sql服務器不產生任何價值,即使我確信有..例如..如果我正在尋找屬於2009年1月1日(即2009年1月1日)之間的日期通過1/5/2009(即2009年5月1日)沒有記錄被返回。當我嘗試在sql server的查詢生成器中更改日期時,它給了我一個錯誤,說它不是我輸入的有效日期...

+0

「2007-5-17」 不是有效的國際日期,「2007-05-17」是。如果您打算使用國際格式「YYYY-MM-DD」,則需要包含前導0。 – jrcs3 2009-04-27 02:07:28

+0

謝謝你jrcs3,領先的零是我失蹤...而我終於高興地發現,有一個國際化的工作方式與日期,因爲它給了我足夠的頭痛,直到現在... – 2009-04-28 05:04:01

+0

酷,我添加評論作爲答案。 – jrcs3 2009-04-28 13:39:08

回答

2

您在UI中處理了很多日期驗證。

首先,在你的webconfig,你需要設置你的文化:

<globalization requestEncoding="utf-8" responseEncoding="utf-8" culture="en-GB" uiCulture="en-GB" /> 

您可以通過設置類型屬性爲「日期」使用在客戶端CompareValidator控件使用。

<CompareValidator ID="id" runat="server" 
    ControlToValidate="controltovalidateid" 
    ErrorMessage="Invalid Date" 
    Type="Date" /> 

限制用戶選項我已經在ASP.NET中使用日曆控件。關於控制的一個好處是,你可以設置該屬性的日期格式:

<ajaxToolkit:Calendar runat="server" 
    TargetControlID="Date1" 
    CssClass="ClassName" 
    Format="dd/mm/yyyy" 
    PopupButtonID="Image1" /> 

其他信息