2013-10-24 36 views
0

我有一個gridview加載了一些數據行的字符串具有時間值(如'10:30 PM')。當我嘗試插入所有網格數據數據庫使用foreach循環考慮網格中的每一行,我想插入具有時間值的字符串作爲datetime varaible在SQL數據庫中。所以我試圖將字符串轉換爲將時間值的字符串轉換爲日期時間對象

Convert.ToDateTime(row.Cells(4).Value) 

但它出現的格式異常

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

任何想法轉換該字符串日期時間

回答

0

日期/時間類型承認不同的格式,因此你必須爲了讓VB.NET知道你的意思究竟是什麼添加一些額外的信息。樣品(對/錯)的替代品:

Dim test1 As Date = Convert.ToDateTime("1-13-2000", New System.Globalization.CultureInfo("en-US")) 'OK 
Dim test2 As Date = Convert.ToDateTime("1-13-2000", New System.Globalization.CultureInfo("en-GB")) 'Error 
Dim test3 As Date = Date.ParseExact("10:30 pm", "hh:mm tt", System.Globalization.CultureInfo.InvariantCulture) 'OK 
Dim test4 As Date = Date.ParseExact("9:30 pm", "hh:mm tt", System.Globalization.CultureInfo.InvariantCulture) 'ERROR 

Convert.ToDateTime考慮到相應的CultureInfo的格式;如果您未指定任何內容,則假定您要使用給定計算機中的默認設置。最好的事情總是指定你想要的文化。你有其他的選擇是告訴確切的格式,例如通過ParseExact

0

這可能是因爲你的價值可能是一個空字符串。

將一個條件

if(row.Cells(4).Value <> null AND row.Cells(4).Value <> string.Empty) 
    Convert.ToDateTime(row.Cells(4).Value) 
相關問題