2010-08-30 103 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)))) 

所以發生了什麼事的代碼行? (服務器是數據倉庫服務器,它應該讓...)

感謝

相關問題