9
votes

Supprimer toutes les lignes d'une table, jette NullPoinger

J'essaie d'écrire une fonction qui supprimera chaque rangée dans une table donnée, mais je reçois une exception Null Pointer. Quelqu'un pourrait-il me diriger dans la bonne direction? Voici le code ...

   public void deleteall(){
    SQLiteDatabase db = tweets.getWritableDatabase();
    String delete = "TRUNCATE FROM tweets";
    db.rawQuery(delete, null);

      }


0 commentaires

6 Réponses :


57
votes

Vérifiez si Tweets est NULL.

Je pense qu'il est plus simple d'utiliser cet appel que d'utiliser RawQuery. Votre rawquery doit être analysé, mais en utilisant la méthode de suppression utilisée déjà une requête paramétralisée. xxx


2 commentaires

Obtenez toujours un NullPoinger, j'utilise la méthode du compte que vous m'avez aidé dans une autre question à vérifier si des lignes> 1 Si c'est alors j'exécute cette méthode. Mais je reçois toujours un pointeur nul, je suppose que je vais dans ce mauvais sens .. est leur meilleure façon de vérifier une table null?


Vérifiez le adb logcat ou DDMS pour voir ce qui provoque le pointeur NULL. Je pense que vous avez d'autres choses null là-bas. Brighthub.com/mobile/google-Adroid/articles/25023.cx < / a>



0
votes

sqlite n'a pas d'instruction code> tronquer code>, vous devez donc faire:

public void deleteall(){
    SQLiteDatabase db = tweets.getWritableDatabase();
    String delete = "DELETE FROM tweets";
    db.rawQuery(delete, null);
}


1 commentaires

Juste pour supprimer toutes les lignes, vous pouvez utiliser la méthode suivante. vide DeleteLl () {SQLITEDATABASE DB = Ceci.getwRITratabase (); db.delete (Nom de table, null, null); }



11
votes

Juste pour supprimer toutes les lignes, vous pouvez utiliser la méthode suivante.

void deleteAll()
{
    SQLiteDatabase db= this.getWritableDatabase();
    db.delete(table_name, null, null);

}


0 commentaires

1
votes
    dataBaseHelper = new DataBaseHelper(getApplicationContext(), DataBaseHelper.DataBaseName, null, 1);
    sqLiteDatabase = dataBaseHelper.getWritableDatabase();
    if (sqLiteDatabase != null) {
        sqLiteDatabase.delete(DataBaseHelper.TableName, null, null);
        Toast.makeText(MainActivity.this, "Refresh", Toast.LENGTH_SHORT).show();
    } else
        Toast.makeText(MainActivity.this, "Error", Toast.LENGTH_SHORT).show();
    break;
}

0 commentaires

1
votes

Je reçois une exception de pointeur nulle, puis j'ai réalisé que ma méthode n'appelle pas db.open () d'abord. Ajouté que (et db.close () ) et cela a fonctionné.


0 commentaires