2011-05-01 71 views
2

你好 我在嘗試更新ms訪問數據庫。我有與我使用的是最新一個GridView:VB.net日期格式Gridview dd/mm/yyyy

Dim tBox As TextBox = CType(gridStaff.Rows(e.RowIndex).FindControl("sDate"), TextBox) 

那麼我想從這個文本框取值,並將其賦值給一個日期變量。

Dim test As Date = CDate(tBox.Text) 

我的問題是,現在當我把測試變量到我的SQL更新查詢它存儲在該格式的日期。 mm/dd/yyyy而不是我想要的dd/mm/yyyy格式。

我試過不同的方式來格式化我在線閱讀,但沒有成功。任何建議都會很棒!

感謝

回答

0

是你的問題,從tBox.Text到日期的轉換,或者是在SQL更新查詢的水平? - 你應該給sql語句一個嚴格類型的參數。從tBox.Text轉換成測試也許應該在文化認識的方式來完成:

「字符串轉換和目標日期: 昏暗dateString的String =‘2011年2月15日’ 昏暗d截止日期

'轉換時字符串指定英語/ US文化: 昏暗的小路作爲Globalization.CultureInfo = Globalization.CultureInfo.GetCultureInfo( 「EN-US」) d = Date.Parse(dateString,CUL)

您也可以依靠在默認文化上,只需讓Date.Parse在不指定文化的情況下完成這項工作。

+0

這麼近又那麼遠: (它工作的一點,但如果我去改變日期在文本框日期是回美國格式而不是英國 – 2011-05-01 23:06:30

+0

如果我嘗試輸入16-5-2011到文本框中我得到這個錯誤r:字符串未被識別爲有效的DateTime。 – 2011-05-01 23:09:15

+0

我明白了你的觀點,但問題在於解析器需要提前知道日期格式。您也可以選擇避免使用文本框並改爲使用日曆控件。 (或者使用任何其他類型的日期 - 控件,你根本不依賴於字符串格式。) – faester 2011-05-02 08:39:04

0

嘗試使用

Dim test As Date = DateTime.ParseExact(tBox.Text, "d/M/yyyy", CultureInfo.InvariantCulture) 

或者如果您的系統設置權和CultureInfo.CurrentCulture有正確的日期格式,

Dim test As Date = DateTime.Parse(tBox.Text, CultureInfo.CurrentCulture) 

,而不是CDate()

+0

嗨巴拉河 我試着你的建議,但我得到這個錯誤。 字符串未被識別爲有效的DateTime。 – 2011-05-01 22:46:38

+0

@Bitzal,我錯過了日期格式的結尾引號。我現在修好了。你可以試試嗎? – 2011-05-01 22:57:21

+0

@Bala R - 我注意到並自己修復了 - 仍然有這個錯誤:( – 2011-05-01 23:05:33