2017-05-29 1 views
-1

je les suivantes:Nom de la colonne ne fonctionne pas dans SQLite Android studio

public static final String COL_4 = "ID"; 

Et:

public void onCreate(SQLiteDatabase db) { 
    db.execSQL("create table " + TABLE_NAME + " (LastScore INTEGER, Highscore INTEGER, Title TEXT, ID BOOLEAN)"); 

Cela fonctionne parfaitement;

Cependant, si je change d'identité pour, disons, « John » (dans la déclaration et la execSQL), je reçois l'erreur suivante:

android.database.sqlite.SQLiteException: no such column: John (code 1): , while compiling: UPDATE Player_Stats SET LastScore=?,Title=?,John=?,Highscore=? 

Toute idée de comment un tel changement au nom de la String jette une exception? Merci!

EDIT: Le problème n'est pas avec Boolean. Le même problème se produit si je le change en Integer. Fonctionne avec "ID", ne pas "John"

+0

voulez-vous changer le nom de colonne ID à John? –

+0

'John' - ce n'est pas une colonne, juste une valeur dedans. Veuillez indiquer votre instruction de liaison – FieryCat

+0

dans votre COL_4 = Le type de données "ID" est booléen –

Répondre

0

Il semble que la première fois que je l'ai exécutée, la base de données a été créée avec la colonne ID. Par conséquent, j'appelle seulement le onUpgrade() plus tard que le onCreate(), qui attend une colonne appelée ID plutôt que John. Je suis dans l'incapacité de le faire, mais je crois que la suppression de la base de données et le redémarrage permettront de résoudre le problème. Merci pour le soutien!

0

Type de données Boolean

Il n'y a pas de type de données booléen natif pour SQLite. SQLite n'a pas de classe de stockage Boolean distincte. Au lieu de cela, les valeurs booléennes sont stockées sous la forme d'entiers 0 (faux) et 1 (vrai).

+0

Vrai, mais la même chose se produit quand je le traite comme Integer. – Ziad