0

任何人都可以帮助澄清如何在我的销售人员数据库中获取一个字段作为字符串(例如来自特定/单个帐户的名称),我正在搜索的地方是帐户中的 custom_ID__c?我熟悉大多数 sql 和查询数据库,但我似乎无法让我的查询运行并返回一个特定帐户记录的名称。这是我尝试过但失败的方法:

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]);

我已经单独尝试了这些查询中的每一个,它们中的大多数似乎都可以编译,但在运行时失败,没有真正的错误。:( 请帮忙

非常感谢您提前

4

1 回答 1

0

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

Account act = [select Id, Name from Account where Customer_Number__c =
                :ApexPages.currentPage().getParameters().get('ARID') limit 1];

但是,如果查询没有返回任何记录,您将收到运行时错误(在您的情况下可能会发生这种情况,我不确定它为什么会抑制它,除非您的查询位于不存在的 try/catch 块中) t 报告错误)。所以通常最好查询一个列表:

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]
}
于 2013-06-10T19:00:24.163 回答