2013-09-27 3 views
2

Donc je suppose que c'est un problème très commun, la recherche sur le web, je trouve que je ne suis pas le seul qui a fait face à un tel problème et oui je sais qu'il y a une question avec presque le même titre, cependant cela n'a pas aidé à résoudre le problème auquel je suis confronté ... donc commençons depuis le débutandroid.database.sqlite.SQLiteException: table n'a pas une telle colonne

J'essaie simplement d'insérer dans une table que j'ai créée. Ce tableau comporte trois colonnes: « id », « name », « valeur », et a été créé comme suit

public static final String TABLE_NAME = "cookie"; 
public static final String COLUMN_ID = "_id"; 
public static final String COLUMN_NAME = "name"; 
public static final String COLUMN_VALUE = "val"; 

private static final String DATABASE_NAME = "commments.db"; 
private static final int DATABASE_VERSION = 2; 

// Database creation sql statement 
private static final String DATABASE_CREATE = "create table " 
    + TABLE_NAME + "(" 
    + COLUMN_ID + " integer primary key autoincrement, " 
    + COLUMN_VALUE + "text not null, " 
    + COLUMN_NAME + " text not null" 
    + ");"; 

public MySQLiteHelper(Context context) { 
super(context, DATABASE_NAME, null, DATABASE_VERSION); 
} 

@Override 
public void onCreate(SQLiteDatabase database) { 
    database.execSQL(DATABASE_CREATE); 
} 

Maintenant, je suis en train d'insérer dans ce tableau comme suit

ContentValues values = new ContentValues(); 
     values.put(MySQLiteHelper.COLUMN_NAME, "username"); 
     values.put(MySQLiteHelper.COLUMN_VALUE, username); 

     long insertId = database.insert(MySQLiteHelper.TABLE_NAME, null, values); 
     Cursor cursor = database.query(MySQLiteHelper.TABLE_NAME, allColumns, MySQLiteHelper.COLUMN_ID + " = " + insertId, null, null, null, null); 
     cursor.moveToFirst(); 
     nameValuePair newComment = cursorToNameValuePair(cursor); 
     cursor.close(); 

Cependant Je reçois cette erreur

table cookie has no column named val 

Je recherchais des problèmes similaires en ligne, la plupart de la solution où parler d'un changement est arrivé à la base de données, alors je dois soit

1- Désinstallez l'application avant d'essayer d'exécuter en mode débogage à nouveau 2- la version mise à jour de base de données de 1 à 3

Cependant cela n'a pas aidé .. Alors attendons vos offres de solutions :)

Répondre

9

Le problème est ici

+ COLUMN_VALUE + "text not null, " 

dans DATABASE_CREATE String. Vous avez manqué l'espace entre nom de colonne et type de colonne.

Il devrait être

+ COLUMN_VALUE + " text not null, " 
+0

Incroyable .. merci homme beaucoup! –

+0

Vous êtes le bienvenu :) –

Questions connexes