2016-05-13 12 views
0

Kann jemand mir helfen, diesen Fehler bei der Lösung: Liste hat keine Zeilen für die ZuordnungListe hat keine Zeilen für die Zuordnung

Klasse an der Linie SObject:

qName = [select Row_Id__c, Name from Ccon__c where Id = :ApexPages.currentPage().getParameters().get('id')].Row_Id__c; 

Testklasse line:

Controller  controller1  = new Controller(sc1); 

Antwort

0

Diese bedeuten, dass Ihre Abfrage kein Ergebnis zurückgibt (also die Liste leer ist und dann wenn man in ein Objekt wirft, gibt es kein Item zu nehmen).

qName = [select Row_Id__c, Name from Ccon__c where Id = :ApexPages.currentPage().getParameters().get('id')].Row_Id__c; 

Ich würde es auf diese Weise tun (auf jeden Fall sicherstellen, dass ich Wert von meiner Anfrage erhalten, wenn meine ID gültig ist):

Id tempID = null; 
if(ApexPages.currentPage().getParameters().get('id') != null) 
{ 
    tempId = ApexPages.currentPage().getParameters().get('id'); 
} 
else{ //Error management 
} 

List<Ccon__c> recordsToProcess = new List<Ccon__c>(); 

if(tempID != null) 
{ 
    recordsToProcess = [select Row_Id__c, Name from Ccon__c where Id = :tempID]; 
} 
else{ //Error management 
} 


//qName Declaration 
if(!recordsToProcess.isEmpty()) 
{ 
    qName = recordsToProcess[0].Row_Id__c; 
} 
else{ //Error management 
} 

if(qName == null) 
{ 
    //Error management 
} 

Wenn Sie weitere Fragen haben, wenden Sie sich bitte an Fragen. Als Best Practice können Sie jedoch immer sicherstellen, dass Ihre Liste nicht leer ist, bevor der Datensatz zurückgegeben wird.

Danke HqSeO