SOQL查询不返回visualforce页面上存在的行

时间:2012-04-26 16:09:54

标签: salesforce apex-code visualforce soql

SOQL查询没有返回visualforce页面上存在于对象中的行我在通过visualforce页面上的SOQL查询检索对象中存在的记录时遇到问题

我怎么知道他们存在?我使用了force explorer和workbench,以下内容返回了一条记录

SELECT Code__c FROM External_membership_label__c WHERE Code__c = '3'

好的,所以visualforce页面不会返回上面的记录,下面是代码(代码中的几行)

  public String gvlLCCODE {get;set;}

  if(gvlLCCODE != null || gvlLCCODE != ''){

        List<External_membership_label__c> exisitingGVLcodes = [SELECT Code__c FROM External_membership_label__c WHERE Code__c = :gvlLCCODE];

        if (exisitingGVLcodes.Size() > 0){
            //blahh blahh
        }
}

有什么建议吗?我有调试告诉我'gvlLCCODE'有一个存在于对象中的值。此外,如果我更改SOQL,例如,从users表返回当前用户,它将返回一条记录,然后输入IF语句。

我认为这是我错过的一个安全问题。但我也检查了这些。

谢谢

2 个答案:

答案 0 :(得分:0)

嗯,首先,在你的IF语句中你可能想要使用&amp;&amp;而不是||。

您是否遇到测试方法的问题?如果是这样,那么这是因为默认情况下该方法无法访问现有记录。

答案 1 :(得分:0)

首先,你应该听听Kirill关于&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp;&amp ;,同样地,||毫无意义,(a!=b)|(a!=c)a的任何b!=c始终为真,with sharing就像这里的情况一样

其次,听起来你肯定有安全问题。要验证更改扩展程序的声明从without sharing到{{1}}并运行。如果您获得该行,则您与该行共享安全问题。