Обычно, когда эта проблема возникает, это из-за недостающих котировок. Но этот столбец INTEGER, и я пытаюсь поместить в него целочисленное значение. Тем не менее, эта ошибка выскакивает:SQLiteException: no такой столбец: 1 (код 1):
android.database.sqlite.SQLiteException: no such column: 1 (code 1): , while compiling: INSERT INTO Artista (id, nome) VALUES (1, '19')
Мой код:
String CREATE_TABLE_ORIGEM =
"CREATE TABLE Origem" +
"(" +
"id INTEGER PRIMARY KEY, " +
"nome TEXT" +
")";
String CREATE_TABLE_ARTISTA =
"CREATE TABLE Artista" +
"(" +
"id INTEGER PRIMARY KEY, " +
"nome TEXT" +
")";
db.execSQL(CREATE_TABLE_ORIGEM);
db.execSQL(CREATE_TABLE_ARTISTA);
String INSERT_ORIGEM = "INSERT INTO Origem (id, nome)";
String INSERT_ARTISTA = "INSERT INTO Artista (id, nome)";
String line;
try{
BufferedReader reader = new BufferedReader(new InputStreamReader(myContext.getAssets().open("origem.txt"), "UTF-8"));
try {
while ((line = reader.readLine()) != null)
db.execSQL(INSERT_ORIGEM + " VALUES (" + line + ")");
} catch(Exception e) {
throw new RuntimeException(e);
} finally {
reader.close();
}
reader = new BufferedReader(new InputStreamReader(myContext.getAssets().open("artista.txt"), "UTF-8"));
try {
while ((line = reader.readLine()) != null)
db.execSQL(INSERT_ARTISTA + " VALUES (" + line + ")");
} catch(Exception e) {
throw new RuntimeException(e);
} finally {
reader.close();
}
} catch (Exception e) {
throw new RuntimeException(e);
}
И это те txts я использую для заполнения таблицы:
origem.txt: http://pastebin.com/Vk2wHnm5
Артиста. txt: http://pastebin.com/wfWSbvfR
Самое забавное: стол Origem имеет одинаковый формат, но у меня нет никаких ошибок;
Фактически, порядок байтов UTF-8 вставлен читателем как-то. Я добавил дополнительную строку в файл и сделал первый вызов readLine(), прежде чем вставлять элементы в базу данных – Lucas