2011-06-28 17 views
0

我想驗證兩個出生日期的文本框字段。如果成員未在這兩個框中輸入,則會彈出一條錯誤消息,如「請輸入有效的日期格式」錯誤試圖保存空的出生日期字段

當嘗試保存而未輸入文本框值時,它顯示的錯誤如下:Datetime DV

字符串未被識別爲有效的DateTime。

private void btnCTimetablessave_Click(object sender, EventArgs e) 
{ 
    string dob = tbStartDate.Text; 
    DateTime dv; 
    if (!DateTime.TryParse(dob, out dv)) 
    { 

     MessageBox.Show("pls enter a valid start date"); 
     return; 
    } 

    string format1 = dv.ToString("yyyy-MM-dd"); 
    string dob2 = tbEndDate.Text; 
    DateTime dt2; 
    if (!DateTime.TryParse(dob2, out dt2)) 
    { 
     MessageBox.Show("pls enter valid end date"); 
     return; 
    } 

    string format2 = dt2.ToString("yyyy-MM-dd"); 

儘管如此它被示出在datetime Dv

錯誤 「字符串未被識別爲有效的日期時間」;

+0

什麼樣的輸入導致錯誤? – Greg

回答

2

顯然,tbStartDate.Text不包含有效日期。至少,根據您當前的環境設置。

本地化可能是一個問題。這裏有個很好的答案:String was not recognized as a valid DateTime " format dd/MM/yyyy"

更新

而不是使用TryParse,你可能需要使用ParseExact

DateTime.ParseExact(this.Text, "dd/MM/yyyy", null); 

這樣的話,你可以指定你期望的輸入格式。

1

什麼是日期參數的dbtype?您必須使用與您的參數類型相同的對象來設置該值。

+1

我在這個問題中沒有看到任何對數據庫的引用。 – Greg

+0

數據類型是日期 – user682417

+0

因此,您需要使用日期對象(dv或dt2)設置參數的值。 –

0

甚至比「TryParse」和「ParseExact」更好的是「TryParseExact」。 TryParseExact的一個重載需要一個格式字符串的字符串數組。所以你可以在你接受的輸入上有更多的靈活性。此外,使用DateTimeStyles參數,您可以在正在解析的字符串內出現的空白區域指定更多的靈活性。