Проблема sqlite onCreate(). Я хочу, чтобы моя база данных была создана один раз, и она не изменится, но я не могу создавать данные, когда нахожусь в onCreate()
Вопрос
Я хочу, чтобы моя база данных была создана один раз, и она не изменится, но я не могу создавать данные, когда нахожусь в 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);
}
}
Решение
Линия
db.execSQL("INSERT INTO"+TABLE_NAME+"VALUES(null, 'hello', 'android');
отсутствует пространства вокруг Table_Name. Если вы выполняете именно эту строку, она не может работать.
Другие советы
1> Вы открыли базу данных?
2> Кроме того, создайте еще один класс, который будет иметь такие служебные методы, как openDatabase, createTable, deleteTable, InsertValues и т. д.
Пример синтаксиса INSERT STATEMENT
dataDb.execSQL(INSERT INTO TABLE_NAME Values («Чиранджиб», «Банерджи», 1););
Не связан с StackOverflow