Java SQLiteException:没有这样的列:1(代码1):
通常当这个问题发生时,是因为缺少引号。但这列是整数,我想在其中加一个整数值。然而,这一错误突然出现:Java SQLiteException:没有这样的列:1(代码1):,java,android,sqlite,Java,Android,Sqlite,通常当这个问题发生时,是因为缺少引号。但这列是整数,我想在其中加一个整数值。然而,这一错误突然出现: android.database.sqlite.SQLiteException:没有这样的列:1(代码1):,编译时:插入Artista(id,nome)值(1,'19') 我的代码: String CREATE_TABLE_ORIGEM = "CREATE TABLE Origem" + "(" + "id
android.database.sqlite.SQLiteException:没有这样的列:1(代码1):,编译时:插入Artista(id,nome)值(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);
}
这些是我用来填充表格的TXT:origem.txt:
artista.txt:
有趣的是:表Origem有相同的格式,但我没有任何错误 不久前,我帮助了一个人解决了类似的问题。看看这些建议是否对你也有帮助 简言之,如果您随着时间的推移进行了DDL更改,您可能正在使用比您意识到的更旧版本的模式:
- 如果可以,请通过DDMS下拉DB的副本并检查模式,或者
- 尝试从头开始删除并重新安装应用程序,以确保您拥有最新版本的架构
希望这能在某种程度上有所帮助。不久前,我曾帮助某人解决过类似的问题。看看这些建议是否对你也有帮助 简言之,如果您随着时间的推移进行了DDL更改,您可能正在使用比您意识到的更旧版本的模式:
- 如果可以,请通过DDMS下拉DB的副本并检查模式,或者
- 尝试从头开始删除并重新安装应用程序,以确保您拥有最新版本的架构
希望这对您有所帮助。您可以尝试直接从AVD或真实设备中清理应用程序数据,以“更新”表格
- 进入设置->应用->应用->存储->清除数据
- 进入设置->应用->应用->存储->清除数据