1

我有这个简单的 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。什么可能导致这种情况?

4

2 回答 2

2

您的计数器变量看起来与您的 GoogleResults 表的行数不同。

我猜你正在寻找这样的东西:

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

或更直接地:

row("Seller") = seller
于 2012-10-21T13:11:57.387 回答
1

循环的最后两行For应该这样重写:

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

添加后更改行可能会导致触发不必要的事件。

于 2012-10-21T13:18:30.063 回答