在android项目中通过SQLite向表中插入记录是错误的

在android项目中通过SQLite向表中插入记录是错误的,android,sqlite,insert,Android,Sqlite,Insert,我创建如下表: DB_CREATE = "create table " + DB_TABLE + " (" + "id" + " integer, " + "title" + " text, " + "author" + " text, " + "image" + " text, " + "time" + " text, " + "detail" + " text);"; _db.execSQL(DB_CREATE); 哪个_db是对SQLiteDatabase的引用。我调

我创建如下表:

DB_CREATE = "create table " + DB_TABLE + " (" + 
"id" + " integer, " + 
 "title" + " text, " + "author" + " text, " + 
 "image" + " text, " +   "time" + " text, " +
 "detail" + " text);";

 _db.execSQL(DB_CREATE);
哪个_db是对SQLiteDatabase的引用。我调用方法insert(),如下所示:

ContentValues newValues = new ContentValues();
    if(object instanceof NewsBean) {
        newValues.put("id", ((NewsBean) object).getId());
        newValues.put("title", ((NewsBean) object).getTitle());
        newValues.put("author", ((NewsBean) object).getAuthor());
        newValues.put("image", ((NewsBean) object).getImage());
        newValues.put("time", ((NewsBean) object).getTime());
        newValues.put("detail", ((NewsBean) object).getDetail());

        return db.insert(DB_TABLE, null, newValues);
}


问题是newValues中的元素没有列为表列。如何解决?我不想更改表。

将“id”列定义为自动递增。因此,您不能将“id”列的值放入ContentValues。

卸载应用程序并重新安装。如果尚未升级数据库,这将修复它。相反,您可以尝试数据库升级来重新实例化表。当然,这是假设您的应用程序在添加数据库功能之前工作正常,并且您正在调用它。你能发布你的堆栈跟踪吗?你说的不列为表列是什么意思?你是说订单吗?是的,订单和桌子上的不一样。谢谢@AedonEtLIRA。我照你说的做,insert方法的错误消失了。然而,出现了另一个问题。很抱歉,我无法发布堆栈跟踪。如何实现?我没有实现内容提供程序,“id”列由我自己定义,不能自动递增。@Androidist,如果它不能自动递增,那么为什么DB_CREATE定义为“整数主键自动递增”?,很抱歉,将“id”定义为“整数主键自动递增”是我的错误