2011-04-15 3 views
1

Je travaille sur un sondage d'une application pour le travail et je reçois toujours une exception disant que ma réponse 2 n'est pas trouvée lors de l'insertion de valeurs dans la base de données.Problème Android SQLite, colonne non trouvée

db.execSQL("UPDATE tblPoll SET Question='Who is more awesome?' WHERE rowid=1;"); 
    db.execSQL("UPDATE tblPoll SET Answer1='Dan' WHERE rowid=1;"); 
    db.execSQL("UPDATE tblPoll SET Answer2='Peet' WHERE rowid=1;"); 
    db.execSQL("UPDATE tblPoll SET Answer3='Jordan' WHERE rowid=1;"); 
    db.execSQL("UPDATE tblPoll SET Answer4='Spencer' WHERE rowid=1;"); 
    db.execSQL("UPDATE tblPoll SET result1=0 WHERE rowid=1;"); 
    db.execSQL("UPDATE tblPoll SET result2=0 WHERE rowid=1;"); 
    db.execSQL("UPDATE tblPoll SET result3=0 WHERE rowid=1;"); 
    db.execSQL("UPDATE tblPoll SET result4=0 WHERE rowid=1;"); 
    db.execSQL("UPDATE tblPoll SET resultTotal=0 WHERE rowid=1;"); 

Ceci est mon code pour insérer les éléments dans la ligne, et il fonctionne pour chacune des réponses (les membres de l'équipe), à ​​l'exception Peet. J'ai mis Peet en premier, dernier et dernier, et il est le seul qui le brise.

private static final String DATABASE_CREATE = 
    "CREATE TABLE tblPoll (id INTEGER PRIMARY KEY, " + 
    "Question TEXT, Answer1 TEXT, Result1 NUMERIC, " + 
    "Answer2 TEXT, Result2 NUMERIC, Answer3 TEXT, " + 
    "Result3 NUMERIC, Answer4 TEXT, Result4 NUMERIC, " + 
    "ResultTotal NUMERIC);"; 

Ceci est mon code d'insertion pour créer la table.

Toute aide sera grandement appréciée.

@ 2red13 je l'ai couru comme vous avez eu (avec tous les champs remplis correctement, et il est toujours déconner sur Réponse2

Nouveau code:.

ContentValues werte = new ContentValues(); 
    werte.put("Answer1", "Dan"); 
    werte.put("Answer2", "Peet"); 
    werte.put("Answer3", "Jordan"); 
    werte.put("Answer4", "Spencer"); 
    werte.put("Result1", 0); 
    werte.put("Result2", 0); 
    werte.put("Result3", 0); 
    werte.put("Result4", 0); 
    werte.put("ResultTotal", 0); 
    db.update("tblPoll", werte,"rowid=1",null); 
+0

En guise de remarque, pouvez-vous garantir que vous n'aurez jamais besoin d'une cinquième réponse? –

+1

Êtes-vous sûr que la ligne avec rowid = 1 existe? Vous faites une mise à jour non insérée, donc elle ne sera pas créée si elle n'est pas déjà là. En outre, vous pouvez définir tous les champs dans la même instruction UPDATE ou INSERT, google pour une syntaxe SQL :) – Torp

+0

Peut-être que Peet n'est pas si génial ... – MByD

Répondre

0

Je havn't tout idée WHI Peet schoud échouent, mais la façon dont vous effectuez les mises à jour est un peu alittle lent, essayez:

ContentValues werte = new ContentValues(); 
werte.put("Answer1", "Dan"); 
.... 
werte.put("resultTotal", 0); 
db.update("tblPoll", werte,"rowid=1",null); 

Peut-être que résout le problème Peet trop ^^