我想从两个日期之间的数据库中获取数据。
代码:
con1.Open()
Dim re As String = ""
Dim d1 As DateTime = DateTimePicker2.Value.ToString("dd/MM/yyyy")
Dim d2 As DateTime = DateTimePicker3.Value.ToString("dd/MM/yyyy")
Dim cmd As New OleDbCommand("Select lno,pname,mdue,ramt from Due where ddate >= '" + Convert.ToDateTime(d1) + "' and ddate<= '" + Convert.ToDateTime(d2) + "' and ramt='0'", con1)
Dim da As OleDbDataReader = cmd.ExecuteReader
While (da.Read())
re = re & " " & da("lno").ToString.PadRight(30) & " " & da("pname").ToString.PadLeft(10) & " " & da("mdue").ToString.PadLeft(10) & Chr(13)
End While
我收到数据类型不匹配错误。日期的数据类型仅为Date/Time
。
答案 0 :(得分:0)
在分配给DateTime
变量之前,您正在转换为字符串!
尝试
con1.Open()
Dim re As String = ""
Dim d1 As DateTime = DateTimePicker2.Value
Dim d2 As DateTime = DateTimePicker3.Value
Dim cmd As New OleDbCommand("Select lno,pname,mdue,ramt from Due where ddate >= #" & String.Format("{0:dd/MM/yyyy}", d1) & "# and ddate<= #" & String.Format("{0:dd/MM/yyyy}", d2) & "# and ramt='0'", con1)
Dim da As OleDbDataReader = cmd.ExecuteReader
While (da.Read())
re = re & " " & da("lno").ToString.PadRight(30) & " " & da("pname").ToString.PadLeft(10) & " " & da("mdue").ToString.PadLeft(10) & Chr(13)
End While
您还应该使用&
作为连接运算符... https://msdn.microsoft.com/en-us/library/te2585xw.aspx