Controller salesforce的定制apex控制器

Controller salesforce的定制apex控制器,controller,salesforce,apex-code,Controller,Salesforce,Apex Code,有人可以帮助我澄清如何在salesforce DB中以字符串形式获取字段(例如,从特定/单个帐户中获取名称),我在其中通过帐户中的自定义ID进行搜索吗?我熟悉大多数sql和查询DBs,但我似乎无法运行查询并返回特定帐户记录的名称。以下是我尝试过但失败的地方: SObject s = [SELECT Name FROM Account WHERE Customer_Number__c = :ApexPages.currentPage().getParameters().get('ARID') LI

有人可以帮助我澄清如何在salesforce DB中以字符串形式获取字段(例如,从特定/单个帐户中获取名称),我在其中通过帐户中的自定义ID进行搜索吗?我熟悉大多数sql和查询DBs,但我似乎无法运行查询并返回特定帐户记录的名称。以下是我尝试过但失败的地方:

SObject s = [SELECT Name FROM Account WHERE Customer_Number__c = :ApexPages.currentPage().getParameters().get('ARID') LIMIT 1];


SObject s = [SELECT Name FROM Account WHERE Customer_Number__c = :ApexPages.currentPage().getParameters().get('ARID')];


SObject s = [SELECT Name FROM Account WHERE Customer_Number__c = :ARID LIMIT 1][0];

SObject s = Database.query('SELECT Name FROM Account WHERE Customer_Number__c = :ARID LIMIT 1');

Account act = new Account( = [Select Name FROM Account WHERE Customer_Number__c = :ARID LIMIT 1]);
我已分别尝试了这些查询,其中大多数似乎已编译,但在运行时失败,没有出现真正的错误:(请帮忙


非常感谢您

我不确定您是否有任何理由希望将特定对象上的查询强制转换为通用SObject…但这肯定会起作用,假设请求实际包含以下参数:

Account act = [select Id, Name from Account where Customer_Number__c =
                :ApexPages.currentPage().getParameters().get('ARID') limit 1];
但是,如果查询没有返回任何记录,您将得到一个运行时错误(在您的情况下可能会发生这种情况,我不确定为什么会抑制它,除非您的查询位于不报告错误的try/catch块中)。因此,通常最好查询一个列表:

Account[] acts = [select Id, Name from Account where Customer_Number__c =
                :ApexPages.currentPage().getParameters().get('ARID')];
if ( acts != null && !acts.isEmpty() ) {
    // do whatever you want with acts[0]
}