내가 SqlParameters로 이전, 취약 SqlCommands을 변경하지만 SQLEXCEPTION 얻을 해요 :변환 실패 : SqlParameter에와 날짜 시간
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에서 따옴표를 제거해야합니까? 그러나 그때 나는 예외는 있지만 잘못된 결과는 얻지 못한다.
btw와 같이 적절한 형식이있는 경우에만 날짜 - 시간 유형을 문자열과 비교할 수 있습니다 (예 : "2010-06-14" – abatishchev