android.la base de données.sqlite.SQLiteConstraintException: erreur code 19: contrainte failedexception
J'ai créé une table nommée ressources mais quand j'ai insérer des valeurs dans, cette exception est levée:
android.database.sqlite.SQLiteConstraintException:
error code 19: constraint failedexception
Voici mon create table déclaration:
public static final String DATABASE_CREATE =
"CREATE TABLE " + table_resources + "(ID INTEGER PRIMARY KEY,
KEY_TYPE text, KEY_ENCODING text, KEY_WIDTH text, KEY_HEIGHT text,
KEY_DATA text, KeyIId text)";
Ce qui suit est mon insérer code:
JSONObject show = data.getJSONObject(i);
if (show.get("type").equals("resource_updates")) {
JSONArray resources = show.getJSONArray("resources");
try {
System.out.println("length of resources is is " + resources.length());
for (int resourceIndex = 0; resourceIndex < resources.length(); resourceIndex++) {
type = resources.getJSONObject(resourceIndex).getString("type").toString();
encoding = resources.getJSONObject(resourceIndex).getString("encoding").toString();
data1 = resources.getJSONObject(resourceIndex).getString("data").toString();
id = resources.getJSONObject(resourceIndex).getString("id").toString();
try {
width = resources.getJSONObject(resourceIndex).getString("width").toString();
} catch (Exception e) {
System.out.println(e);
width = "null";
}
try {
height = resources.getJSONObject(resourceIndex).getString("height").toString();
} catch (Exception e) {
e.printStackTrace();
height = "null";
}
db.insert(type,encoding,width,height, data1,iid);
}
} catch (Exception e) {
e.printStackTrace();
System.out.println(e + "exception");
System.out.println("exception in the resources");
}
}
Quelqu'un peut me dire d'où pourrait être le problème?
Lorsque vous attendez des autres pour déboguer votre code, son meilleur si vous fournir l'ensemble de la stacktrace.
assurez-vous que votre table correctement créé?je pense,de créer de la requête est d'avoir des problème aussi. vous n'avez pas donner un blanc un espace après le nom de la table dans votre création de requête.aussi les noms de colonnes que vous utilisez pour récupérer des données à partir de la table sont différentes que vous utilisez ceux de création de requête.
assurez-vous que votre table correctement créé?je pense,de créer de la requête est d'avoir des problème aussi. vous n'avez pas donner un blanc un espace après le nom de la table dans votre création de requête.aussi les noms de colonnes que vous utilisez pour récupérer des données à partir de la table sont différentes que vous utilisez ceux de création de requête.
OriginalL'auteur ekjyot | 2011-11-14
Vous devez vous connecter pour publier un commentaire.
Contrainte échec indique généralement que vous avez fait quelque chose comme passer un
null
valeur dans une colonne que vous déclarez commenot null
lorsque vous créez votre table.insert
méthode? Je suppose que c'est une méthode d'assistance que les appels réelsSQLiteDatabase.insert
méthode avec vos donnéessolution parfaite pour la table sans les clés primaires!!
OriginalL'auteur Craigy
Afin d'obtenir plus d'informations sur SQLite erreurs, on peut utiliser la BAD dumpsys:
combiné avec grep:
ou grep ed deux fois:
OriginalL'auteur Martin Zeitler