我试图将检索到的日期字符串从访问数据库转换为日期类型以进行月份计算。 我遇到的问题是无法将检索到的字符串类型变量转换为日期类型。我尝试了一些方法,如Convert.ToDateTime,DateTime.ParseExact()..仍然失败
我的代码能够以字符串形式检索permitEndDate的列,但无法将其转换为日期类型,因为我需要将其传递给我的函数。
请帮助我成为VB的新人,非常感谢那些阅读我的问题的人。
我的代码:
For i As Integer = 0 To ds.Tables("lecturer").Rows.Count - 1
TextBox1.AppendText(ds.Tables("lecturer").Rows(i).Item(16) & vbCrLf)
'convert string to date type
Dim getDate As String = ds.Tables("lecturer").Rows(i).Item(16)
TextBox1.AppendText("Parse getDate: " & getDate & vbCrLf)
Dim expDate As DateTime = DateTime.ParseExact(getDate, "dd/MM/yyyy", CultureInfo.InvariantCulture)
TextBox1.AppendText("Parse expDate with date type: " & expDate & vbCrLf)
' Dim permitEndDate As String = ds.Tables("lecturer").Rows(i).Item(16)
'expDate = Convert.ToDateTime(permitEndDate)
' TextBox1.AppendText("Difference in month: " & CalculateMonth(expDate) & vbCrLf)
Next
功能:
'calculation of months
Function CalculateMonth(ByVal endDate As Date) As Integer
Dim result As Integer
'1.get today date
Dim currentDate As Date = Date.Now.ToString("dd/MM/yyyy")
'calculation formula
result = DateDiff(DateInterval.Month, currentDate, endDate)
Return result
End Function
因此,我的错误" String未被识别为有效的DateTime。"这条线是: Dim expDate As Date = Date.ParseExact(getDate," dd / MM / yyyy",CultureInfo.InvariantCulture)
答案 0 :(得分:1)
请检查表格中的列值
(ds.Tables("lecturer").Rows(i).Item(16))
我认为您保存了一个不匹配的字符串,无法转换为日期。