我必须在这里做一些愚蠢的事情,因为我有一些非常相似的代码可以正常工作。当我编译并运行下面的代码时,我得到一个 android.database.sqlite.SQLiteException:
05-05 20:00:29.524: E/AndroidRuntime(12785): Caused by: android.database.sqlite.SQLiteException: near "VALUES": syntax error: , while compiling: INSERT INTO bookmarks_6616 (VALUES (
这就是整个错误。就好像正在发送不完整的插入。最奇怪的是,异常是在第一次调用 InsertHelper.getColumnIndex() 时生成的,无论如何都不应该编译插入。
代码如下。我检查过,表确实存在(它是空的,之前创建了几行。)键也有正确的值。我可能会切换回使用不带 insertHelper 的 insert(),但我希望能够找出这个错误!任何帮助表示赞赏。
InsertHelper ihelper = new InsertHelper(dbHelper.mDb, tableName);
//Populate the DB table
final int idColumn = ihelper.getColumnIndex(BooksDbAdapter.KEY_CHID);
final int titleColumn = ihelper.getColumnIndex(BooksDbAdapter.KEY_CHAPTERTITLE);
final int urlColumn = ihelper.getColumnIndex(BooksDbAdapter.KEY_CHAPTERURL);
final int durationColumn = ihelper.getColumnIndex(BooksDbAdapter.KEY_DURATION);
for (RSSMessage msg : messages){
if (msg.imageMessage()) {
dbHelper.updateImage(lvid, msg.getImageURL());
} else {
ihelper.prepareForInsert();
ihelper.bind(idColumn, chid);
ihelper.bind(titleColumn, msg.getChapterTitle());
ihelper.bind(urlColumn, msg.getChapterURL());
ihelper.bind(durationColumn, msg.getDuration());
ihelper.execute();
chid++;
}
}
ihelper.close();