sqlite onCreate problème que je veux que ma base de données () créé une fois, et il ne sera pas changé, mais je ne peux pas créer des données quand je suis dans onCreate ()

StackOverflow https://stackoverflow.com/questions/4781157

  •  23-10-2019
  •  | 
  •  

Question

Je veux que ma base de données créée une fois, et il ne sera pas changé, mais je ne peux pas créer des données quand je suis dans onCreate () ...

public class EventsData extends SQLiteOpenHelper {
       private static final String DATABASE_NAME = "events.db";
       private static final int DATABASE_VERSION = 1;


       public EventsData(Context ctx) {
          super(ctx, DATABASE_NAME, null, DATABASE_VERSION);
       }

       @Override
       public void onCreate(SQLiteDatabase db) {

          db.execSQL("CREATE TABLE " + TABLE_NAME + " (" + _ID
                + " INTEGER PRIMARY KEY AUTOINCREMENT, " + TIME
                + " TEXT NOT NULL," + TITLE + " TEXT NOT NULL);");

    //This doesn't work..
          db.execSQL("INSERT INTO"+TABLE_NAME+"VALUES(null, 'hello', 'android');");
       }

       @Override
       public void onUpgrade(SQLiteDatabase db, int oldVersion,
             int newVersion) {
          db.execSQL("DROP TABLE IF EXISTS " + TABLE_NAME);
          onCreate(db);
       }

    }
Était-ce utile?

La solution

La ligne

 db.execSQL("INSERT INTO"+TABLE_NAME+"VALUES(null, 'hello', 'android');

manque des espaces autour du TABLE_NAME. Si vous exécutez exactement cette ligne, il ne peut pas fonctionner.

Autres conseils

1> Avez-vous ouvert la base de données?

2> En outre, créer une autre classe qui aura les méthodes utilitaires comme OpenDatabase, createTable, DeleteTable, insertValues, etc.

Syntaxe Exemple pour instruction INSERT

databaseDb.execSQL (INSERT INTO valeurs TABLE_NAME ( 'Chiranjib', 'Banerjee', 1););

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top