错误是:从字符串转换日期和/或时间时转换失败。vb.net SQL日期时间转换问题
基本上我试图做到这一点,当有人点击列表框中的某个位置时,它会将统计信息表中的正确字段加1以表示他们单击了该位置。我一直在努力解决这个问题,现在不能得到任何东西。我的日期是日期格式,我的统计表中的日期字段也是如此。我的代码可以在下面看到。
Dim Current As String
Dim Check As String
Dim objCmd2 As Object
Dim iCount As Integer
Dim tDate As Date
Current = LocBox.SelectedItem
Check = LocList.FindString(Current)
If Check > -1 Then
MsgBox("You have already selected this place to visit")
Else
LocList.Items.Add(Current)
ObjDataReader.Close()
tDate = Date.Today
MessageBox.Show(tDate)
tDate = tDate.ToString()
objCmd2 = New SqlCommand("SELECT " & Replace(Current, " ", "_") & " FROM Stats WHERE Date = '" & tDate & "'", objConn)
ObjDataReader = objCmd2.ExecuteReader
If ObjDataReader.HasRows Then
ObjDataReader.Read()
If ObjDataReader(0) Is DBNull.Value Then
iCount = 0
Else
iCount = ObjDataReader(0)
End If
Else
iCount = 0
End If
objCmd = New SqlCommand("INSERT INTO Stats(Date," & Replace(Current, " ", "_") & ") Values('" & tDate.Date & "'," & iCount & ")", objConn)
ObjDataReader.Close()
objCmd.ExecuteNonQuery()
objConn.Close()
在此先感谢。
问题出现在我认为的第二条SQL语句中。我不明白为什么将日期添加到日期字段会是一个问题,我试着将它添加为一个不起作用的字符串。感谢所有迄今为止的答案。
使用参数化查询与正确的数据类型的参数。这是更安全的(SQL注入),并应解决您的问题。 – 2011-03-27 14:11:11
Sql Server中的datetime列的格式是什么?它实际上是一个日期时间吗?还是像varchar那样?处理日期和时间时,不应该使用字符串。使用日期时间。 – 2011-03-28 15:53:58