[O] SQLite数据库报错:no such column

在SQLite数据库创建语句增加列,运行后报错:no such column

在语法规范的前提下,即

//SQLite数据库创建,逗号与空格须严格
String CREATE_NOTE = "create table "
			+ NotepadEntity.TABLE_NOTE
			+ " (" + NotepadEntity.NOTE_ID + " integer primary key autoincrement,"
			+ NotepadEntity.NOTE_TITLE + " varchar not null," //此列为修改语句后增加
			+ NotepadEntity.NOTE_CONTENT + " text not null,"
			+ NotepadEntity.NOTE_CREATE_DATE + " text);";

SQLiteDatabase db;
db.execSQL(CREATE_NOTE);

 仍无法编译通过,其原因是SQLite创建命令执行过一次,数据库文件已存在,即使语句有变更,也没有再执行。

解决办法:

打开DDMS工具找到“File  Explorer”,定位到项目文件里的数据库文件列表(展开到/data/data/<package name>/databases)

(可将数据库文件导出电脑,用SQLite Database Browser等工具查看是否有列数据未创建)

删除该数据库文件及其journal文件,返回工程再次运行,程序检测到数据库为空,则执行创建命令,编译通过。

此时再导出DDMS下的数据库文件,查看列表结构,新增列创建成功,问题解决。

 

posted @ 2015-11-01 09:57  misybing  阅读(9773)  评论(0编辑  收藏  举报