通常、この問題が発生した場合、引用符がないためです。しかし、この列はINTEGERで、整数値を入れようとしています。しかし、このエラーがポップアップ表示されます:SQLiteException:そのような列がありません:1(コード1):
android.database.sqlite.SQLiteException: no such column: 1 (code 1): , while compiling: INSERT INTO Artista (id, nome) VALUES (1, '19')
私のコードを:
origem.txt:http://pastebin.com/Vk2wHnm5
アルティスタ
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です。 txt:http://pastebin.com/wfWSbvfR
面白いことです:テーブルの原型は同じフォーマットですが、私はそれにエラーはありません。
実際には、読者が何らかの形で挿入したUTF-8バイトオーダーでした。私はファイルに余分な行を追加し、データベースに要素を挿入する前にreadLine()を最初に呼び出しました – Lucas