在我的应用程序中,我创建了一个数据库,并尝试在该表中插入值。但是我收到了以下错误:
android.database.sqlite.SQLiteException: table income has no column named recurrence: , while compiling: INSERT INTO income(recurrence, salary, description) VALUES(?, ?, ?);
我的代码是:
数据库创建:
"create table income(_id integer primary key autoincrement,"+"salary text not null,description text not null,"+"recurrence text not null);";
我的插入查询:
public long insertTitle(String income, String desc,String recurr)
{
ContentValues initialValues = new ContentValues();
initialValues.put(KEY_INCOME, income);
initialValues.put(KEY_DESC, desc);
initialValues.put(KEY_RECURR, recurr);
//initialValues.put(KEY_PUBLISHER, publisher);
return db.insert(DATABASE_TABLE, null, initialValues);
}
答案 0 :(得分:0)
尝试清除Android设备上的数据库。也许您应用程序不会覆盖新数据库并使用旧数据库。这可能是造成此错误的原因。
答案 1 :(得分:0)
不确定错误的确切位置,但我建议您使用adb
检查数据库。
使用以下步骤。
adb -e shell
.tables
或.schema income
命令select * from income;
如果您的桌子已经创建,您将会知道。
你也可以编写虚拟插入命令来检查它是否正常工作。
Insert into income values(1,"salary","desc","rec");
答案 2 :(得分:0)
你错过了一个'+'号:
把这一个尝试:
"create table income(_id integer primary key autoincrement,"+"salary text not null,"+"description text not null,"+"recurrence text not null);";
在运行之前不要忘记清除应用程序的数据。