我有一个 gridview 加载了一些具有时间值字符串的数据行(如'10:30 PM')。当我尝试考虑网格中的每一行使用 foreach 循环将所有网格数据插入数据库时,我想在 SQL 数据库中插入具有时间值作为日期时间变量的字符串。所以我试图将字符串转换为
Convert.ToDateTime(row.Cells(4).Value)
但是会出现格式异常
字符串未被识别为有效的日期时间。
将此字符串转换为日期时间的任何想法
我有一个 gridview 加载了一些具有时间值字符串的数据行(如'10:30 PM')。当我尝试考虑网格中的每一行使用 foreach 循环将所有网格数据插入数据库时,我想在 SQL 数据库中插入具有时间值作为日期时间变量的字符串。所以我试图将字符串转换为
Convert.ToDateTime(row.Cells(4).Value)
但是会出现格式异常
字符串未被识别为有效的日期时间。
将此字符串转换为日期时间的任何想法
这可能是因为您的值可能是一个空字符串。
放个条件
if(row.Cells(4).Value <> null AND row.Cells(4).Value <> string.Empty)
Convert.ToDateTime(row.Cells(4).Value)
日期/时间类型接受不同的格式,因此您必须添加一些附加信息才能让 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
.