I pretty much copy and pasted the code from the API PDF, but am getting a Null reference Exception on line:
AccountArray(0) = AccountToUpdate
Anyone know what I am doing wrong? Thanks!
Dim boolQueryFinished = False
Dim strCurrentID As String = "0"
Dim contractid As Integer
Dim strWebURI As String = "https://webservices.autotask.net/atservices/1.5/atws.asmx"
Dim myService As New ATWS
myService.Url = strWebURI
Dim cred As New System.Net.NetworkCredential("U", "P")
Dim credCache As New System.Net.CredentialCache
credCache.Add(New Uri(myService.Url), "Basic", cred)
myService.Credentials = credCache
Dim AccountID As New ArrayList
Dim i As Integer
While Not (boolQueryFinished)
Dim strQuery As String = "<queryxml><entity>Contract</entity>" & _
"<query><condition><field>id<expression op=""greaterthan"">" & strCurrentID &
"</expression></field></condition></query>" & _
"</queryxml>"
Dim r As ATWSResponse
r = myService.query(strQuery)
If r.EntityResults.Length > 0 Then
For Each ent As Entity In r.EntityResults
strCurrentID = ent.id
AccountID.Add(CType(ent, Contract).AccountID)
Next
Else
boolQueryFinished = True
While i < ContractName.Count
listOutput.Items.Add(ContractName(i))
listOutput.Items.Add(id(i))
If ContractName(i).Contains("Georges") Then
listOutput.Items.Add("Found it")
Dim sResponse As ATWSResponse
Dim AccountToUpdate As New Contract
Dim AccountArray(0) As Contract
AccountToUpdate.AccountID = AccountID(i)
AccountArray(0) = AccountToUpdate
Dim entityArray() As Entity = CType(AccountArray, Entity())
sResponse = myService.update(entityArray)
If sResponse.ReturnCode = 1 Then
listOutput.Items.Add("Updated")
Else
listOutput.Items.Add("Failed")
End If
End If
i = i + 1
End While
listOutput.Items.Add(id.Count)
listOutput.Items.Add(ContractName.Count)
End If
End While
It appears that:
r.EntityResults.Length
is not greater than zero. You've fallen into the else
clause. While i < ContractName.Count
loop was entered (it's not clear what this ContractName
is, though. i
isn't initialized yet, so it's value is 0
. ArgumentOutOfRange Exception
, as we're trying to get to index 0 of an empty ArrayList.
AccountToUpdate.AccountID = AccountID(i)
Are you sure you meant to have the While
loop within the Else
block? I'm curious where the End If
statement is?
The technical post webpages of this site follow the CC BY-SA 4.0 protocol. If you need to reprint, please indicate the site URL or the original address.Any question please contact:yoyou2525@163.com.