2012-01-13 2 views
1

J'essaye de créer une base de données de SQLite dans mon application, l'exportant à la carte d'écart-type. Je reçois l'erreurErreur 1 de SQLite aucune erreur d'insertion de SQLite de colonne

01-13 12: 31: 39,621: I/Base de données (3828): sqlite retourné: code d'erreur = 1, msg = inventaire de table n'a pas de colonne nommée emplacement

insert SQLite erreur

Voici mon code pour créer la base de données ... Je n'arrive pas à trouver le problème.

@Override 
    public void onCreate(SQLiteDatabase db) { 
     db.execSQL("CREATE TABLE inventory (" 
       + "_id INTEGER PRIMARY KEY," + "serialnum TEXT," 
       + "modelnum TEXT," + "manufact TEXT," + "description TEXT," 
       + "time DATETIME" + ");"); 
    } 

    @Override 
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
     if (oldVersion < 2) { 
      Log.d("SW","Upgrading database from version " + oldVersion + " to " + newVersion); 
      db.execSQL("ALTER TABLE inventory ADD location TEXT"); 
     } 
     if (oldVersion < 3) { 
      Log.d("SW","Upgrading database from version " + oldVersion + " to " + newVersion); 
      db.execSQL("ALTER TABLE inventory ADD other TEXT"); 
     } 

    } 
+0

par la façon dont le projet opensource je travaille est hors de http://code.google.com/p/simplecan/source/checkout Merci – KDEx

Répondre

0

La syntaxe correcte pour ajouter une nouvelle colonne:

ALTER TABLE test1 ADD COLUMN foo;

Essayez ceci:

@Override 
public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) { 
    if (oldVersion < 2) { 
     Log.d("SW","Upgrading database from version " + oldVersion + " to " + newVersion); 
     db.execSQL("ALTER TABLE inventory ADD COLUMN location TEXT"); 
    } 
    if (oldVersion < 3) { 
     Log.d("SW","Upgrading database from version " + oldVersion + " to " + newVersion); 
     db.execSQL("ALTER TABLE inventory ADD COLUMN other TEXT"); 
    } 

} 
+0

J'ai essayé cela, ne fonctionne pas. Consultez le lien dans mon commentaire pour les données opensource sur lesquelles je travaille. merci – KDEx

+0

Cette réponse est correcte en ce que c'est comment vous ajoutez correctement une colonne. Mon problème provenait de l'ajout incorrect d'un spinner qui créait les données pour la colonne. – KDEx

0

Essayez

ALTER TABLE inventory ADD COLUMN location TEXT 
0

Essayez de changer la première commande SQL:

db.execSQL("CREATE TABLE inventory (" 
      + "_id INTEGER PRIMARY KEY," + "serialnum TEXT," 
      + "modelnum TEXT," + "manufact TEXT," + "description TEXT," 
      + "time DATETIME," + "location TEXT" + ");"); 

- instruction create table ne comprend pas la colonne de l'emplacement.

+0

J'ai essayé ça, pas de cigare. Merci – KDEx