0

在我的应用程序中,我创建了一个数据库,并尝试将值插入到该表中。但我收到以下错误:

 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);
}
4

3 回答 3

0

尝试从 Android 设备中清除您的数据库。也许您的应用程序没有覆盖新数据库并使用旧数据库。这可能是此错误的原因。

于 2012-07-03T12:38:47.720 回答
0

不确定到底哪里出错了,但我建议你去检查你的数据库,使用adb. 使用以下步骤。

  1. 打开命令提示符
  2. 导航到您的 android sdk 文件夹-> 平台工具
  3. adb -e shell
  4. cd 数据/数据/your.package.name/databases
  5. sqlite3 YOUR_DATABASE.db
  6. 现在运行.tables.schema income命令
    select * from income;

你会知道你的表是否已经创建。

您还可以编写虚拟插入命令来检查它是否正常工作。

Insert into income values(1,"salary","desc","rec");
于 2012-07-03T12:46:17.520 回答
0

你错过了一个“+”号:

放这个试试:

"create table income(_id integer primary key autoincrement,"+"salary text not null,"+"description text not null,"+"recurrence text not null);";

并且不要忘记在运行之前清除应用程序的数据。

于 2012-07-03T13:11:47.570 回答