Salesforce 列表越界错误

Salesforce 列表越界错误,salesforce,apex-code,Salesforce,Apex Code,这里是我的扩展控制器代码,我正在处理上面的错误 从列出的代码中,我有什么需要做的吗?我想说问题出在这一行: o=[从Opportunity中选择name、Id、RecordTypeID,其中name=:lqa[0]。Opportunity\uu\c] 直到那一行之后才检查lqa的大小,但是在那里索引到记录列表中,并带有[0]。如果列表为空,则0将超出范围。您的调试日志应该显示查询返回的记录数。根据列出的代码,我认为问题出在这一行: name=:lqc.LQ_Agreement__c o=[从O

这里是我的扩展控制器代码,我正在处理上面的错误


从列出的代码中,我有什么需要做的吗?我想说问题出在这一行:

o=[从Opportunity中选择name、Id、RecordTypeID,其中name=:lqa[0]。Opportunity\uu\c]


直到那一行之后才检查lqa的大小,但是在那里索引到记录列表中,并带有[0]。如果列表为空,则0将超出范围。您的调试日志应该显示查询返回的记录数。

根据列出的代码,我认为问题出在这一行:

name=:lqc.LQ_Agreement__c
o=[从Opportunity中选择name、Id、RecordTypeID,其中name=:lqa[0]。Opportunity\uu\c]

直到那一行之后才检查lqa的大小,但是在那里索引到记录列表中,并带有[0]。如果列表为空,则0将超出范围。调试日志应该显示查询返回的记录数

name=:lqc.LQ_Agreement__c
应该是

Id=:lqc.LQ_Agreement__c
因为查找字段存储的是ID,而不是名称

应该是

Id=:lqc.LQ_Agreement__c

因为查找字段存储ID,而不是名称。

它没有给出行号,只是抛出了一个异常(我想是的),调试日志是。它没有给出行号,只是抛出了一个异常(我想是的),调试日志是。lqa查询是否有问题,因为没有被检索的记录。我看不到,请确保在URL中传递了记录ID,然后确保
LQ\u Contract\u\u c
记录上的字段
LQ\u Agreement\u\u c
实际具有有效值。请注意,如果您试图显示超过1000条记录,Visualforce也会阻塞并显示此错误(或者我记得我看到过)。在任何情况下,在任何SOQL查询的末尾添加限制x通常是一个好的做法,即使它实际上是50000000。在您的情况下,您可以说是限制1,但实际上没有必要,因为任何“SELECT WHERE primary key=”类型查询将返回1或0个结果。lqa查询是否有任何问题,因为没有正在检索的记录。我看不到这一点,请确保在URL中传递了记录ID,然后确保
LQ\U合同\uU c
记录上的
LQ\U协议\uU c
字段实际具有有效值。在相关的注意,如果您试图显示超过1000条记录,Visualforce也会阻塞并显示此错误(或者我记得我看到过)。在任何情况下,将限制x添加到任何SOQL查询的末尾通常是一个好做法,即使它实际上是50000000。在您的情况下,您可以说限制1,但实际上没有必要,因为任何“SELECT WHERE primary key=“type querys”都将返回1或0个结果。显然,与“WHERE name=:lqa[0]”相同。与“其中name=:lqa[0]。显然是机遇”。