2011-11-28 26 views
0

這裏我爲擴展控制器代碼,我geeting上述列出界失誤

錯誤我有什麼,我需要做的

+0

在哪一行? – superfell

+0

它沒有給行號它只是拋出一個異常(我認爲是這樣)和調試日誌是。 – user1048080

回答

2
name=:lqc.LQ_Agreement__c 

應該

Id=:lqc.LQ_Agreement__c 

由於查找字段存儲的ID,沒有名字。

+0

與「where name =:lqa [0] .Opportunity__c」相同,顯然。 – jkraybill

+0

謝謝你的工作,我有點困惑。 – user1048080

2

從上市我想說的問題是與代碼這條線:

o=[select name,Id,RecordTypeID from Opportunity where name=:lqa[0].Opportunity__c];

你不檢查LQA的大小,直到該行後,但你索引的記錄與[0]有列表。如果列表爲空,那麼0將超出界限。您的調試日誌應顯示查詢返回的記錄數。

+0

lqa查詢是否存在任何問題,因爲沒有正在被檢索的記錄。 – user1048080

+0

不是我能看到的,請確保URL中正在傳遞一個記錄ID,然後確保'LQ_Contract__c'記錄上的字段'LQ_Agreement__c'實際上具有有效值。 –

+0

在相關說明中,如果您嘗試顯示超過1000條記錄,Visualforce也會窒息並顯示此錯誤(或者我想我仍然記得看到它)。 在任何情況下,將LIMIT x添加到任何SOQL查詢的末尾通常是一個好習慣,即使它的字面上是50000000.在你的情況下,你可以說LIMIT 1,但是真的沒有必要,因爲任何「SELECT WHERE主鍵=「類型查詢將返回1或0個結果。 – Adam