我改变了旧的,脆弱的SqlCommands与SqlParameters却得到了一个SQLEXCEPTION:转换失败:SqlParameter的和DateTime
System.Data.SqlClient.SqlException { “从字符串转换日期时间时,转换失败。”}
上sqlCommand.ExecuteScalar
:
Dim sqlString As String = _
"SELECT TOP 1 " & _
"fiSL " & _
"FROM " & _
"tabData AS D " & _
"WHERE " & _
"D.SSN_Number = '@SSN_Number' " & _
"AND D.fiProductType = 1 " & _
"AND D.Repair_Completion_Date > '@Repair_Completion_Date' " & _
"ORDER BY " & _
"D.Repair_Completion_Date ASC"
Dim obj As Object
Dim sqlCommand As SqlCommand
Try
sqlCommand = New SqlCommand(sqlString, Common.MyDB.SqlConn_RM2)
sqlCommand.CommandTimeout = 120
sqlCommand.Parameters.AddWithValue("@SSN_Number", myClaim.SSNNumber)
sqlCommand.Parameters.AddWithValue("@Repair_Completion_Date", myClaim.RepairCompletionDate)
If Common.MyDB.SqlConn_RM2.State <> System.Data.ConnectionState.Open Then Common.MyDB.SqlConn_RM2.Open()
obj = sqlCommand.ExecuteScalar()
Catch ex As Exception
Dim debug As String = ex.ToString
Finally
Common.MyDB.SqlConn_RM2.Close()
End Try
myClaim.RepairCompletionDate
是SQLDATETIME。 我必须删除sqlString中的引号以比较日期列吗?但后来我没有得到例外,但结果不正确。
顺便说一句,只有当日期时间类型具有适当的格式时,才可以将日期时间类型与字符串进行比较。 ''2010-06-14'' – abatishchev 2010-06-14 09:30:30