sqlite onCreate () проблема Я хочу, чтобы моя база данных была создана один раз, и она не изменится, но я не могу создавать данные, когда я в onCreate () - PullRequest
4 голосов
/ 24 января 2011

Я хочу, чтобы моя база данных была создана один раз, и она не изменится, но я не могу создавать данные, когда я в 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);
       }

    }

Ответы [ 2 ]

4 голосов
/ 24 января 2011

В строке

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

пропущены пробелы вокруг TABLE_NAME.Если вы выполните именно эту строку, она не сможет работать.

0 голосов
/ 24 января 2011

1> Вы открыли базу данных?

2> Кроме того, создайте другой класс, который будет иметь такие служебные методы, как openDatabase, createTable, deleteTable, insertValues ​​и т. Д.

Пример синтаксиса дляINSERT STATEMENT

databaseDb.execSQL (INSERT INTO TABLE_NAME Значения ('Chiranjib', 'Banerjee', 1););

...