这是错误代码:
09-27 11:56:01.425: WARN/System.err(10324): android.database.sqlite.SQLiteConstraintException: error code 19: constraint failed
09-27 11:56:01.435: WARN/System.err(10324): at android.database.sqlite.SQLiteStatement.native_execute(Native Method)
09-27 11:56:01.435: WARN/System.err(10324): at android.database.sqlite.SQLiteStatement.execute(SQLiteStatement.java:61)
09-27 11:56:01.435: WARN/System.err(10324): at android.database.sqlite.SQLiteDatabase.execSQL(SQLiteDatabase.java:1809)
09-27 11:56:01.435: WARN/System.err(10324): at de.enough.appmate.dbase.CMSResource.updateItem(CMSResource.java:1103)
09-27 11:56:01.435: WARN/System.err(10324): at de.enough.appmate.dbase.CMSResourceUpdater.updateItems(CMSResourceUpdater.java:178)
09-27 11:56:01.435: WARN/System.err(10324): at de.enough.appmate.dbase.CMSResourceUpdater.loadUpdates(CMSResourceUpdater.java:102)
09-27 11:56:01.435: WARN/System.err(10324): at de.enough.appmate.dbase.CMSResourceUpdaterRunnable.run(CMSResourceUpdaterRunnable.java:32)
09-27 11:56:01.435: WARN/System.err(10324): at java.lang.Thread.run(Thread.java:1019)
这是使用的方法
this.db.execSQL("INSERT INTO itemGalleryItems (id, imageCaption, imageUrl,itemID,orderIndex,displayInGallery) VALUES (?,?,?,?,?,?); ",
bindArgs);
binArgs看起来像:
String[] bindArgs = {
(String) imageItem.get("id"),
(String) imageItem.get("imageCaption"),
(String) imageItem.get("imageName"),
(String) item.get("id"),
(String) imageItem.get("orderIndex"),
(String) imageItem.get("displayInGallery")};
希望有人可以提供帮助
感谢名单 newone
答案 0 :(得分:8)
我已修复此错误;
而不是
long sucess = db.insert(TABLE_NAME_CONTACT_EXTRA, null, row);
使用它在数据库中插入数据
long sucess = db.insertWithOnConflict(TABLE_NAME_CONTACT_EXTRA, null,
row, SQLiteDatabase.CONFLICT_IGNORE);
答案 1 :(得分:4)
我认为如果你有自动增量字段,你不应该在查询中包含它...是“id”自动增量吗?
答案 2 :(得分:3)
看看你的插入声明。它是否具有在表create语句中声明为非null的所有列? 并尝试不使用“id”列,改为使用“_id”。