如何使用apex控制器中的查找字段将数据插入到自定义对象中

时间:2013-11-23 13:24:17

标签: salesforce visualforce apex

我有一个自定义对象MyCustomObj__c,其中有一个名为“ContactData”的字段。

我正在尝试使用以下apex方法将记录插入自定义对象。它给出了一个错误:

Invalid ID

联系人列表中已存在值Hari

顶点代码:

public static String saveData(){
    MyCustomObj__c newObj = new MyCustomObj__c(); 
    newObj.contactData__c = 'Hari';
    insert newObj;
    return "success";
}

如何插入行?

3 个答案:

答案 0 :(得分:5)

您应该传递联系人记录的ID' Hari'

 public static String saveData(){
       MyCustomObj__c newObj = new MyCustomObj__c(); 
       newObj.contactData__c = [SELECT Id 
                                FROM Contact 
                                WHERE Name ='Hari' LIMIT 1].Id;
       insert newObj;
       return "success";
 }

当然,你应该尽量避免使用SOQL,这只是一个例子。

答案 1 :(得分:0)

将数据插入对象的Apex代码:

static void testInsert(){
    User testUser = new User(username = 'joebieber@hotmail.com', 
    firstname = 'joe', lastname = 'bieber', 
    email = 'joebieber@hotmail.com', Alias = 'jo', 
    CommunityNickname = 'jo', 
    TimeZoneSidKey = 'America/New_York', LocaleSidKey = 'en_US', 
    EmailEncodingKey = 'ISO-8859-1', 
    ProfileId = '00e6000000167RPAAY', 
    LanguageLocaleKey = 'en_US');
    insert testUser;

    List<SObject> sos = Database.query('select username from User');

    List<User> users= new List<User>();
    if( sos != null ){
       for(SObject s : sos){
          if (((User)s).get('username') == 'joebieber@hotmail.com')
            Utils.log('' + ((User)s).get('username') );
       }
    }
}

应该打印刚刚添加的用户的用户名。

答案 2 :(得分:0)

我们可以使用数据加载器将数据移动到数据库以查找字段 大师