我改變了舊的,脆弱的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