2012-10-21 80 views
1

我有這個簡單的VB.NET功能:什麼是邏輯上對這種錯誤的VB.NET代碼

Dim endval = Convert.ToInt16(googleXMLdocument...<s:currentItemCount>.Value) - 1 
For counter = 0 To endval 
    Dim seller = googleXMLdocument...<s:name>(counter).Value 
    Dim containsValue = ToBeIgnored.AsEnumerable().Any(Function(r) r.Field(Of String)("Ignore") = seller) 
    If containsValue Then 
    Continue For 
    End If 
    row = GoogleResults.NewRow() 
    GoogleResults.Rows.Add(row) 
    GoogleResults.Rows(counter)("Seller") = seller 'sometimes this line throws an exception there is no row at position x 
Next 

在最後一行有時我得到一個異常there is no row at position x。什麼會造成這種情況?

回答

2

您的計數器變量看起來不像GoogleResults表的行數。

我猜你正在尋找的東西是這樣的:

GoogleResults.Rows(GoogleResults.Rows.Count - 1)("Seller") = seller 

或更直接:

row("Seller") = seller 
1

最後兩個For環行要寫成這樣:

row("Seller") = seller; 
GoogleResults.Rows.Add(row) 

添加行後更改行可能會導致不必要的事件被觸發。