2010-08-30 62 views
0

我有一个程序在ASP.NET(VB.NET)中使用Lucene.net,当你搜索一个术语时,结果存储在Lucene.net数据结构中的“命中”。StackOverflow在List(Of T)

我想读出数据结构中的匹配并与它们一起使用,之后我将它们显示在DataGrid中。

通过与不少成果的搜索术语,通常(但并不总是)有通过下面的代码中的错误:

For i = 0 To results - 1 Step 1 
    Try 
     Dim tmpobj As New object_hit((_ 
      hits.Doc(i).Get("title") + _ 
      hits.Doc(i).Get("doc_typ")), _ 
      hits.Doc(i).Get("pfad"), _ 
      hits.Doc(i).Get("last_change"), _ 
      hits.Doc(i).Get("doc_typ"), _ 
      CStr(hits.Score(i)))  
     list_of_results.Add(tmpobj) 'works' 
    Catch 
     meldung.Text = "Stackoverflow- zuviele Ergebnisse " 
     myexception = True 
    End Try 

我检查了服务器;这是一个dwh服务器,并没有问题来执行该程序。

起初我使用了ReDim Array,但现在我使用List(Of T)。我听说应该解决问题,但它不 - 现在我很困惑,不知道该怎么做 有人可以帮我吗?

+0

难道你得到一个StackOverflowException?或者是其他东西?我只是问题的题目。 – 2010-08-30 13:45:20

回答

0

更改Catch块,这样你实际上可以看到这里发生了什么:

Catch ex as Exception 
    meldung.Text = ex.Message ' or ex.ToString() to see full details ' 
    throw 
End Try 

你可能没有得到StackOverflowException这里。

+0

@abatishchev:我不介意编辑,但VB中的注释并不需要用撇号关闭。 – 2010-08-30 13:52:11

+2

这是关于语言的一个好处;然而,如果您不用附加引号“关闭”VB注释,则SO上的语法高亮将使所有后续代码的颜色与注释/字符串的颜色相同。添加额外报价的唯一目的是增加SO的可读性。 – 2010-08-30 14:03:43

+1

对。但是关闭标记修复了在SO上使用的Google语法高亮机制中对VB语法的支持受到的破坏。如果没有标记,我不知道为什么,我猜测除了作者之外没有其他人,剩下的代码将作为评论着色。尝试,你会看到 – abatishchev 2010-08-30 14:04:59

0

我的浏览器崩溃了,所以我不得不写作客人:<对不起。

我尝试的是:

类型 '的System.OutOfMemoryException' 引发的异常。

现在我有一个正确的for循环,只有一个在它

list_of_results.Add(New object_hit((hits.Doc(i).Get("title") + hits.Doc(i).Get("doc_typ")), hits.Doc(i).Get("pfad"), hits.Doc(i).Get("last_change"), hits.Doc(i).Get("doc_typ"), CStr(hits.Score(i)))) 

所以发生了什么事的代码行? (服务器是数据仓库服务器,它应该让...)

感谢

相关问题