我知道你在这里有很多关于这个错误的问题,但我不明白为什么所有的字段似乎在Logcat上正确填充,但即使如此发生故障。Android-SQLiteConstraintException错误代码19:约束失败
下面是表的创建:
public void onCreate(SQLiteDatabase db) {
String ddl = "CREATE TABLE Politician (id INTEGER PRIMARY KEY AUTOINCREMENT UNIQUE , idpolitician INTEGER NOT NULL, name TEXT NOT NULL, picture TEXT , position TEXT NOT NULL, country TEXT NOT NULL, state TEXT NOT NULL, city TEXT NOT NULL);";
db.execSQL(ddl);
}
这里就是我想救。
public void savePolitician(Politician politician) {
ContentValues values = new ContentValues();
values.put("idpolitician", politician.getId());
values.put("name", politician.getName());
values.put("picture", politician.getPictureFilename());
values.put("position", politician.getPosition());
values.put("country", politician.getCountry());
values.put("state", politician.getState());
values.put("city", politician.getCity());
mDatabase.insert("Politician", null, values);
}
这里是logcat的:
01-08 04:03:31.149 32633-32633/? E/Database﹕ [SQLiteDatabase.java:1428:insert()] Error inserting
state=SP position=governador picture=example idpolitician=1 city=Sao Paulo country=Brasil name=Alckmin
android.database.sqlite.SQLiteConstraintException: error code 19: constraint failed
at android.database.sqlite.SQLiteStatement.native_execute(Native Method)
at android.database.sqlite.SQLiteStatement.execute(SQLiteStatement.java:61)
at android.database.sqlite.SQLiteDatabase.insertWithOnConflict(SQLiteDatabase.java:1582)
at android.database.sqlite.SQLiteDatabase.insert(SQLiteDatabase.java:1426)
at com.politify.dao.DbManegament.savePolitician(DbManegament.java:44)
正如你可以看到所有的字段填写。任何人都可以帮忙,并告诉什么我真的做错了
您是否输入了任何重复的值? – Raghunandan
卸载并重新安装,以便任何可能的旧数据库被删除,并且你的'onCreate()'被再次调用。认为有一个带有不同约束的旧版本模式的数据库文件。 – laalto
是的,我试图添加3个不同的项目。他们拥有相同的国家和国家,但对于私人医生,姓名和图片来说却有不同的价值。 但是我从第一个项目得到了这个错误。桌上还没有政客。 –