I searched for similar issues, but none of them seem to help out this situation. I'm using Visual Basic .NET and connecting through SQL. I'm getting the error above, but only when I'm running the project through executable. In Debug mode, I am not getting the error.
I've narrowed it down to errors:
System.NullReferenceException: Object reference not set to an instance of an object. at APP_XIFIN.NET_3._5.WebServices.Execute()
Then:
System.InvalidCastException: Conversion from string "JAV" to type 'Double' is not valid. ---> System.FormatException: Input string was not in a correct format. at Microsoft.VisualBasic.CompilerServices.Conversions.ParseDouble(String Value, NumberFormatInfo NumberFormat) at Microsoft.VisualBasic.CompilerServices.Conversions.ToDouble(String Value, NumberFormatInfo NumberFormat) --- End of inner exception stack trace --- at Microsoft.VisualBasic.CompilerServices.Conversions.ToDouble(String Value, NumberFormatInfo NumberFormat) at Microsoft.VisualBasic.CompilerServices.Conversions.ToDouble(String Value) at APP_XIFIN.NET_3._5.XIFIN_Global.EndTransmission(String AccessionID, String Sequence, String StatusCode, String StatusMessage, String RefDate)
What confuses me the most of that nothing in either the database nor in the code is related to a Double.
Here's the code:
Public Function EndTransmission(ByVal AccessionID As String, ByVal Sequence As String, ByVal StatusCode As String, ByVal StatusMessage As String, Optional ByVal RefDate As String = "NO") As Date
UPDATE TransmissionQueue SET StatusCode = @StatusCode, StatusMessage = @StatusMessage, InterfaceTime = GETDATE(), ReferencesBuiltTime = GETDATE() WHERE AccessionID = @Accession AND Sequence = @Sequence"
Try
Using connection As New SqlConnection(connectionstring)
connection.Open()
Using Command As New SqlCommand(sql, connection)
'set parameters
Command.Parameters.Add("@StatusCode")
Command.Parameters("@StatusCode").Value = StatusCode
Command.Parameters.Add("@StatusMessage")
Command.Parameters("@StatusMessage").Value = StatusMessage
Command.Parameters.Add("@Accession")
Command.Parameters("@Accession").Value = AccessionID
Command.Parameters.Add("@Sequence")
Command.Parameters("@Sequence").Value = Sequence
'execute
Command.ExecuteScalar()
End Using
connection.Close()
End Using
End Using
Catch ex As Exception
'A connection level error has occurred
'Expand exception handling as needed
'MsgBox(ex.ToString) 'Convert this to Windows Event Log
Call SendEmail(ex.ToString, "Accession: " & AccessionID & vbNewLine & "Sequence: " & Sequence & vbNewLine & "StatusCode: " & StatusCode & vbNewLine & "RefDate: " & RefDate)
End Try
I've also tried this code:
sql = "UPDATE TransmissionQueue SET StatusCode = '" + StatusCode + "', StatusMessage = '" + cSQL(StatusMessage) + "', InterfaceTime = GETDATE(), ReferencesBuiltTime = GETDATE() WHERE AccessionID = '" + AccessionID + "' AND Sequence = '" + Sequence + "'"
Try
Using connection As New SqlConnection(connectionstring)
connection.Open()
Using Command As New SqlCommand(sql, connection)
'execute
Command.ExecuteScalar()
End Using
connection.Close()
End Using
End Using
Any help is greatly appreciated.
InterfaceTime = datetime ReferencesBuiltTIme = datetime No line is provided and I pasted everything the stacktrace error provides. – Ray May 07 '15 at 15:52