I have a particular sub routine in VS 2010 that does not seem to be performing the comparisons in IF statement conditions properly. During debugging it seems to skip some entirely. A fellow developer and I have been looking at them for the past day or so and it seems like it should work just fine (they arent that complicated). I am hoping we are just burnt out and missing something obvious...
In particular, it seems to fail when comparing strings. I had a FOR EACH loop that was comparing column values in a datatable, but it seemed like when I used the .ToString method it wouldnt ever trigger a match when comparing a .ToString item from a DataRow to a string value constant. So I had to make separate string variables and initialize them to items from the DataRow and THEN use those variables in the IF statement condition.
Now I am facing another problem in the same sub routine where the IF statement condition wont even be processed. I have set BREAK points around the entire section of code, and it doesnt ever seem to trigger and break on specific conditions.
For some addition Info the SubmitRequest() function returns the string of "success" when performed correctly.
The condition that never triggers is:
Any help would be GREATLY appreciated! thanks!!!
See below code:
In particular, it seems to fail when comparing strings. I had a FOR EACH loop that was comparing column values in a datatable, but it seemed like when I used the .ToString method it wouldnt ever trigger a match when comparing a .ToString item from a DataRow to a string value constant. So I had to make separate string variables and initialize them to items from the DataRow and THEN use those variables in the IF statement condition.
Now I am facing another problem in the same sub routine where the IF statement condition wont even be processed. I have set BREAK points around the entire section of code, and it doesnt ever seem to trigger and break on specific conditions.
For some addition Info the SubmitRequest() function returns the string of "success" when performed correctly.
The condition that never triggers is:
Code:
Result = SubmitRequest(TestPhoneHome, TestZipCode)
If Result = "success" Then
UpdateRpvLog(TestFLID, "home", "submit", Date.Now.ToString)
Else
Any help would be GREATLY appreciated! thanks!!!
See below code:
Code:
Private Sub RpvProcess()
Dim Result As String = ""
'For some reason Visual Studio would NOT correctly compare values from dr.item("<ColumnName>").ToString = "<String Expression>" properly - 2013-03-11
Dim TestFLID As String = ""
Dim TestPhoneMobile As String = ""
Dim TestPhoneHome As String = ""
Dim TestMPhoneSubmitDate As String = ""
Dim TestMPhoneResultDate As String = ""
Dim TestMPhoneResult As String = ""
Dim TestHPhoneSubmitDate As String = ""
Dim TestHPhoneResultDate As String = ""
Dim TestHPhoneResult As String = ""
Dim TestZipCode As String = ""
'TEMPORARILY DISABLED until loop issue resolved. do not want new records added.
'For Each dr0 As DataRow In RetrievePhones().Rows
' If InsertRpvLogStart(dr0.Item("FinanceLeadID"), dr0.Item("PhoneMobile"), dr0.Item("PhoneHome"), dr0.Item("ZipCode")) = False Then
' WriteToLog("Failed to insert new record into tRpvLog")
' GoTo EndOfCheck
' End If
'Next
'////////Submitting phone number
For Each dr As DataRow In RetrieveRpvPhones().Rows
TestFLID = Trim(dr.Item("FinanceLeadID").ToString)
TestPhoneMobile = Trim(dr.Item("PhoneMobile").ToString)
TestPhoneHome = Trim(dr.Item("PhoneHome").ToString)
TestMPhoneSubmitDate = Trim(dr.Item("MPhoneSubmitDate").ToString)
TestMPhoneResultDate = Trim(dr.Item("MPhoneResultDate").ToString)
TestMPhoneResult = Trim(dr.Item("MPhoneResult").ToString)
TestHPhoneSubmitDate = Trim(dr.Item("HPhoneSubmitDate").ToString)
TestHPhoneResultDate = Trim(dr.Item("HPhoneResultDate").ToString)
TestHPhoneResult = Trim(dr.Item("HPhoneResult").ToString)
TestZipCode = Trim(dr.Item("ZipCode").ToString)
'see if Mobile phone is formatted correctly
If IsNumeric(TestPhoneMobile) = False Or TestPhoneMobile.Length <> 10 Or TestMPhoneResult = "disconnected" Then
'******HOME PHONE **************
'set Mobile Phone Submit Result to "disconnected" if it fails general formatting
If TestMPhoneResult <> "disconnected" Then UpdateRpvLog(TestFLID, "mobile", "submit", , "disconnected")
'set Home Phone Submit Result to "disconnected" if it fails general formatting
If IsNumeric(TestPhoneHome) = False Or TestPhoneHome.Length <> 10 Then
UpdateRpvLog(TestFLID, "home", "submit", , "disconnected")
Else
'check if number was already submitted
If TestHPhoneSubmitDate = "" And TestHPhoneResult <> "disconnected" Then
Result = ""
Result = SubmitRequest(TestPhoneHome, TestZipCode)
If Result = "success" Then
UpdateRpvLog(TestFLID, "home", "submit", Date.Now.ToString)
Else
WriteToLog("FinanceLeadID - " & TestFLID & " : Home Phone =PUT= returned: " & Result)
End If
End If
'END of check if number was already submitted
End If
'******END OF HOME PHONE *******
Else
'******MOBILE PHONE ************
'check if number was already submitted
If TestMPhoneSubmitDate = "" And TestMPhoneResult <> "disconnected" Then
Result = ""
Result = SubmitRequest(TestPhoneMobile, TestZipCode)
If Result = "success" Then
UpdateRpvLog(TestFLID, "mobile", "submit", Date.Now.ToString)
Else
WriteToLog("FinanceLeadID - " & TestFLID & " : Mobile Phone =PUT= returned: " & Result)
End If
End If
'******END OF MOBILE PHONE *****
End If
Next
'//////// End of submit
'Catch ex As Exception
' 'TODO: finish exception handling. duplicate exception handling on the GET as well.
'End Try
'////////Get phone number status
For Each dr As DataRow In RetrieveRpvPhones().Rows
TestFLID = Trim(dr.Item("FinanceLeadID").ToString)
TestPhoneMobile = Trim(dr.Item("PhoneMobile").ToString)
TestPhoneHome = Trim(dr.Item("PhoneHome").ToString)
TestMPhoneSubmitDate = Trim(dr.Item("MPhoneSubmitDate").ToString)
TestMPhoneResultDate = Trim(dr.Item("MPhoneResultDate").ToString)
TestMPhoneResult = Trim(dr.Item("MPhoneResult").ToString)
TestHPhoneSubmitDate = Trim(dr.Item("HPhoneSubmitDate").ToString)
TestHPhoneResultDate = Trim(dr.Item("HPhoneResultDate").ToString)
TestHPhoneResult = Trim(dr.Item("HPhoneResult").ToString)
TestZipCode = Trim(dr.Item("ZipCode").ToString)
If TestMPhoneResult = "disconnected" Then
'******HOME PHONE **************
'--see if home phone has already been checked
If TestHPhoneResult = "" Then
Result = ""
Result = CheckResult(TestPhoneHome, TestZipCode)
If Result = "connected" Or Result = "disconnected" Then
UpdateRpvLog(TestFLID, "home", "check", Date.Now.ToString, Result)
Else
WriteToLog("FinanceLeadID - " & TestFLID & " : Home Phone =GET= returned: " & Result)
End If
End If
'******END OF HOME PHONE *******
Else
'******MOBILE PHONE ************
'--see if mobile phone has already been checked
If TestMPhoneResult = "" Then
Result = ""
Result = CheckResult(TestPhoneMobile, TestZipCode)
If Result = "connected" Or Result = "disconnected" Then
UpdateRpvLog(TestFLID, "mobile", "check", Date.Now.ToString, Result)
Else
WriteToLog("FinanceLeadID - " & TestFLID & " : Mobile Phone =GET= returned: " & Result)
End If
End If
'******END OF MOBILE PHONE *****
End If
Next
'//////// End of get status
EndOfCheck:
End Sub