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

Salesforce SOQL查询不返回visualforce页面上确实存在的行,salesforce,apex-code,visualforce,soql,Salesforce,Apex Code,Visualforce,Soql,SOQL查询未返回visualforce页面上确实存在于对象中的行我在通过visualforce页面上的SOQL查询从对象检索存在的记录时遇到问题 我怎么知道它们存在?我使用了ForceExplorer和workbench,下面返回一条记录 SELECT Code__c FROM External_membership_label__c WHERE Code__c = '3' 好的,visualforce页面不会返回上面的记录,代码在代码的几行下面 public String gvlLCC

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

我怎么知道它们存在?我使用了ForceExplorer和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
        }
}
有什么建议吗?我有调试告诉我“gvlccode”有一个对象中存在的值。此外,如果我将SOQL更改为,例如,从users表返回当前用户,它将返回一条记录,然后输入if语句

我想这是我错过的安全问题。但我也检查了这些


谢谢

首先,在IF语句中,您可能希望使用&,而不是| |


你对测试方法有问题吗?如果是这样,那是因为默认情况下,该方法无法访问现有记录

首先,你应该听基里尔讲&&,这两个条件都应该满足,而不仅仅是一个。同样地,| |也毫无意义,公式a=b|a=当b时,c对任何a都是真的=c这里的情况也是如此


第二,听起来这里肯定有安全问题。验证将扩展的声明从有共享更改为无共享,然后运行。如果您获得了该行,则与该行存在共享安全问题

与测试方法无关,只是查询对象的SOQL。测试方法还没有针对这段代码进行系统断言。是的,这肯定是一个安全问题,只需要知道我遗漏了什么,管理员已经完成了检查,可能是salesforce支持的问题已修改,愚蠢的错误。请检查对象共享设置,如果它不是公共的,请将共享按钮添加到页面布局,在GUI中打开有问题的行,然后单击共享。这将为您提供所有有权访问它的人/组的列表以及通过什么来源。或者您的用户配置文件没有访问taht obejct的权限,但是如果您说您的管理员如您所说进行了检查,那么这应该是他检查的第一件事。