0

我有一个 gridview 加载了一些具有时间值字符串的数据行(如'10:30 PM')。当我尝试考虑网格中的每一行使用 foreach 循环将所有网格数据插入数据库时​​,我想在 SQL 数据库中插入具有时间值作为日期时间变量的字符串。所以我试图将字符串转换为

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

但是会出现格式异常

字符串未被识别为有效的日期时间。

将此字符串转换为日期时间的任何想法

4

2 回答 2

0

这可能是因为您的值可能是一个空字符串。

放个条件

if(row.Cells(4).Value <> null AND row.Cells(4).Value <> string.Empty)
    Convert.ToDateTime(row.Cells(4).Value)
于 2013-10-24T07:04:54.080 回答
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.

于 2013-10-24T07:34:23.457 回答