任何人都可以从以下函数中看到为什么我会收到“无效的强制转换异常”?更具体地说,这是错误“从字符串转换”yyyyMMdd“到'Integer'类型无效。”
我正在尝试将数据库中的DateTime值转换为格式为“yyyyMMdd”的字符串,因此例如1985年10月22日将为“19851022”。
dbReader(fieldName).ToString("yyyyMMdd")
以下是整个功能......
Private Function GetDBReaderDateValue(ByVal dbReader As IDataReader, ByVal fieldName As String) As String
If dbReader(fieldName) Is DBNull.Value Then
Return ""
Else
Return dbReader(fieldName).ToString("yyyyMMdd")
End If
End Function
答案 0 :(得分:1)
好像你在ToString
上调用了Object
...并且没有带有String
参数的重载。您可能需要先转换为DateTime
。
答案 1 :(得分:1)
如果fieldName
不是DateTime,转换将失败。首先尝试将其转换为日期时间:
Dim dt As Date
If Date.TryParse(dbReader(fieldName).tostring, dt) Then
Return dt.ToString("yyyyMMdd")
Else
Throw New ArgumentException("GetDBReaderDateValue needs a Date-Column as parameter!")
End If