Установка значений по умолчанию в базе данных SQLite - PullRequest
0 голосов
/ 09 июня 2019

как установить значения по умолчанию из моей базы данных sqlite в Android Studio

@Override
public void onCreate(SQLiteDatabase db) {
    String createTable = "CREATE TABLE "+TABLE+" (id INTEGER PRIMARY KEY AUTOINCREMENT, indo TEXT, tdr TEXT)";
    db.execSQL(createTable);
    db.execSQL("INSERT INTO "+TABLE+" (indo,tdr) VALUES (ikan,nyao)");
}

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

Я хочу ввести пример данных в свою базу данных, затем, когда я пытаюсь запустить ошибку в

db.execSQL("INSERT INTO "+TABLE+" (indo,tdr) VALUES (ikan,nyao)");

где ошибка, а?Это из-за правил написания?

1 Ответ

0 голосов
/ 10 июня 2019

Проблема заключается в том, что значения должны быть заключены в одинарные кавычки, в противном случае они рассматриваются как имена объектов (в данном случае имена столбцов).

, чтобы вы могли использовать: -

db.execSQL("INSERT INTO "+TABLE+" (indo,tdr) VALUES ('ikan','nyao')") //<<<<<<<<<< ikan and nyao enclosed in single quotes

Однако, более правильный способ будет использовать связанные параметры, в этом случае вы можете использовать:

db.execSQL("INSERT INTO "+TABLE+" (indo,tdr) VALUES (?,?)",new String[]{"ikan","nyao"});
  • при связывании параметров (замена ? на соответствующие значения) значения прилагаются, что обеспечивает защиту от внедрения SQL (хотя атака с использованием SQL невозможна, поскольку данные недоступны). пользователь предоставил).
...