Mon application a deux boutons, le premier bouton est pour supprimer l'enregistrement sur l'entrée de l'utilisateur et le deuxième bouton est pour supprimer tous les enregistrements. Mais lorsque je souhaite supprimer des données, le message
"Votre application a été arrêtée de force" s'affiche .
Veuillez vérifier mon code et me donner quelques suggestions.
public void deleteAll()
{
//SQLiteDatabase db = this.getWritableDatabase();
// db.delete(TABLE_NAME,null,null);
//db.execSQL("delete * from"+ TABLE_NAME);
db.execSQL("TRUNCATE table" + TABLE_NAME);
db.close();
}
et
public void delete(String id)
{
String[] args={id};
getWritableDatabase().delete("texts", "_ID=?", args);
}
Mais il montre l'erreur Log cat suivante.
03-07 15:57:07.143: ERROR/AndroidRuntime(287): Uncaught handler: thread main exiting due to uncaught exception
03-07 15:57:07.153: ERROR/AndroidRuntime(287): java.lang.NullPointerException
03-07 15:57:07.153: ERROR/AndroidRuntime(287): at com.example.MySQLiteHelper.delete(MySQLiteHelper.java:163)
03-07 15:57:07.153: ERROR/AndroidRuntime(287): at com.example.Settings$4.onClick(Settings.java:94)
-07 15:57:07.153: ERROR/AndroidRuntime(287): at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:158)
03-07 15:57:07.153: ERROR/AndroidRuntime(287): at android.os.Handler.dispatchMessage(Handler.java:99)
03-07 15:57:07.153: ERROR/AndroidRuntime(287): at android.os.Looper.loop(Looper.java:123)
03-07 15:57:07.153: ERROR/AndroidRuntime(287): at android.app.ActivityThread.main(ActivityThread.java:4203)
03-07 15:57:07.153: ERROR/AndroidRuntime(287): at java.lang.reflect.Method.invokeNative(Native Method)
03-07 15:57:07.153: ERROR/AndroidRuntime(287): at java.lang.reflect.Method.invoke(Method.java:521)
03-07 15:57:07.153: ERROR/AndroidRuntime(287): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:791)
03-07 15:57:07.153: ERROR/AndroidRuntime(287): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:549)
03-07 15:57:07.153: ERROR/AndroidRuntime(287): at dalvik.system.NativeStart.main(Native Method)
Réponses:
Vous avez manqué un espace:
db.execSQL("delete * from " + TABLE_NAME);
De plus, il n'est même pas nécessaire d'inclure
*
, la requête correcte est:la source
*
.ou, si vous souhaitez que la fonction renvoie le nombre de lignes supprimées ,
À partir de la documentation de la méthode de suppression SQLiteDatabase :
la source
Pour supprimer toutes les lignes du tableau, vous pouvez utiliser:
la source
SQLite ne prend pas en charge la
TRUNCATE
commande. Vous devez utiliser ce que vous avez essayé dans la ligne précédente:PS Vous pouvez optimiser votre programme en utilisant la même instance de la connexion à la base de données pour toutes vos requêtes à la base de données donnée au lieu d'en créer une nouvelle pour chaque requête.
la source
Il n'est pas nécessaire d'utiliser la fonction "exécuter". Le code suivant a fonctionné pour moi :::
la source
ce travail pour moi :)
la source
essayez ce code pour supprimer toutes les données d'une table.
la source
rawQuery()
seul, ne fonctionne pas car il n'exécute pas le SQL.utilisez la fonction de suppression Sqlit avec les deux derniers paramètres nuls.
la source
Ecrivez
ou
la source
J'utilise cette classe pour gérer la base de données et j'espère que cela aidera quelqu'un à l'avenir.
Bon codage.
}
Usage:
la source
la source
Cela fonctionne pour moi. La différence est ici avec execSQL et rawQuery. Le rawQuery est le plus utilisé dans la recherche de cas et execSQL principalement utilisé dans les opérations d'application.
la source
la source
Peut être utile.
la source
ce metod supprime toutes les données de la base de données
la source
J'ai une fonction qui fonctionne pour moi dans Unity (en conjonction avec la base de données SQLite).
code C #:
la source
Voici un moyen simple de supprimer:
Ici
whereClause
est facultatif, passer null supprimera toutes les lignes de la table. La fonction de suppression renverra le numéro de la ligne affectée si elle estwhereClause
transmise, sinon elle renverra 0.la source
vous pouvez utiliser deux méthodes différentes pour supprimer ou toute requête dans sqlite android
la première méthode est
deuxième méthode
utilisez n'importe quelle méthode pour votre cas d'utilisation
la source
Utilisation de SQLite_NET_PCL v1.6.292 dans VStudio - beaucoup de documents et de commentaires semblent désuets (je pense).
Pour supprimer tous les enregistrements
la source