2014-09-08 4 views
0

J'ai problème avec ma méthode d'insertion lors du test par test JUnit Android et pas enrty est enregistré dans la base de données:Créer des entrées en utilisant SQLite (Android)

public long save(TAV t) { 
    ContentValues v = new ContentValues(); 
    v.put(TAV_TITRE, t.getTitle()); 
    v.put(TAV_DATE, t.getDate()); 
    v.put(TAV_DESCRIPTION, t.getDescription()); 
    return db.insert(TAV_TABLE, null, v); 
} 
//this is the JUnit Test Method 
public void testAddition() { 
    setUp(); 
    TAV t = new TAV("titre", "date", "decsritpion"); 
    m.open(); 
    m.save(t); 
    Log.i(tag, "insertion"); 
    testShowAll(); 
} 

AIDE !!! S'IL VOUS PLAÎT

+0

Ouvrez-vous une instance de la base de données? – erad

Répondre

0

Dans votre méthode save(), assurez-vous de faire une instance de votre databse, quelque chose comme SQLiteDatabase db = this.getWritableDatabase(); .Et supprimer return de return db.insert(TAV_TABLE, null, v);-à-dire utiliser

public void save(TAV t) { 
SQLiteDatabase db = this.getWritableDatabase(); 
ContentValues v = new ContentValues(); 
v.put(TAV_TITRE, t.getTitle()); 
v.put(TAV_DATE, t.getDate()); 
v.put(TAV_DESCRIPTION, t.getDescription()); 
db.insert(TAV_TABLE, null, v); 
} 

De l'SQLiteDatabase Documents

insert public long (String table, String nullColumnHack, valeurs ContentValues) Retourne l'ID de ligne de la ligne nouvellement insérée, ou -1 en cas d'erreur

Donc, si votre but est simplement d'ajouter une ligne dans votre base de données alors votre méthode n'a pas besoin de retourner quoi que ce soit. Vous pouvez simplement faire un retour type de votre méthode void et utiliser db.insert à l'intérieur.

+0

C'est une méthode de type long; il devrait avoir un retour –

+0

C'est pourquoi je l'ai changé à 'void'.Est-ce que vous devez retourner l'ID de ligne de la ligne nouvellement insérée? Si non, alors vous pouvez simplement utiliser comme je l'ai mentionné.Vérifier la réponse éditée. –

Questions connexes