Rimuovi tutte le righe della tabella dalla tabella del database SQLite

Voglio rimuovere tutte le righe che ho inserito dalla mia tabella di database SQLite. Il nome della tabella è tbltask . Ho provato a eliminare la tabella ed eliminare * dalla tabella, ma quelli mi stanno dando errori di runtime. Voglio triggersre questo evento nell’evento Button OnClickListner.

Il codice seguente è quello che ho provato:

String delete = "DELETE FROM "+DATABASE_TABLE; db.rawQuery(delete, null); db.delete(DATABASE_TABLE, null, null); 

LogCat:

 11-15 17:45:04.660: DEBUG/AndroidRuntime(300): Shutting down VM 11-15 17:45:04.660: WARN/dalvikvm(300): threadid=1: thread exiting with uncaught exception (group=0x4001d800) 11-15 17:45:04.710: ERROR/AndroidRuntime(300): FATAL EXCEPTION: main 11-15 17:45:04.710: ERROR/AndroidRuntime(300): java.lang.NullPointerException 11-15 17:45:04.710: ERROR/AndroidRuntime(300): at database.com.android.DatabaseAccess.drop(DatabaseAccess.java:258) 11-15 17:45:04.710: ERROR/AndroidRuntime(300): at com.android.ExtraActivity$3$1.onClick(ExtraActivity.java:61) 11-15 17:45:04.710: ERROR/AndroidRuntime(300): at com.android.internal.app.AlertController$ButtonHandler.handleMessage(AlertController.java:158) 11-15 17:45:04.710: ERROR/AndroidRuntime(300): at android.os.Handler.dispatchMessage(Handler.java:99) 11-15 17:45:04.710: ERROR/AndroidRuntime(300): at android.os.Looper.loop(Looper.java:123) 11-15 17:45:04.710: ERROR/AndroidRuntime(300): at android.app.ActivityThread.main(ActivityThread.java:4627) 11-15 17:45:04.710: ERROR/AndroidRuntime(300): at java.lang.reflect.Method.invokeNative(Native Method) 11-15 17:45:04.710: ERROR/AndroidRuntime(300): at java.lang.reflect.Method.invoke(Method.java:521) 11-15 17:45:04.710: ERROR/AndroidRuntime(300): at com.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:868) 11-15 17:45:04.710: ERROR/AndroidRuntime(300): at com.android.internal.os.ZygoteInit.main(ZygoteInit.java:626) 11-15 17:45:04.710: ERROR/AndroidRuntime(300): at dalvik.system.NativeStart.main(Native Method) 11-15 17:45:04.781: WARN/ActivityManager(58): Force finishing activity com.android/.ExtraActivity 11-15 17:45:05.320: WARN/ActivityManager(58): Activity pause timeout for HistoryRecord{45061a70 com.android/.ExtraActivity} 11-15 17:45:14.857: WARN/ActivityManager(58): Launch timeout has expired, giving up wake lock! 11-15 17:45:15.402: WARN/ActivityManager(58): Activity idle timeout for HistoryRecord{450141d0 com.android/.WelcomActivity} 11-15 17:45:20.572: WARN/ActivityManager(58): Activity destroy timeout for HistoryRecord{45061a70 com.android/.ExtraActivity} 

Questo è l’output LogCat che ottengo per la seguente query:

  String delete = "DELETE FROM taskTable"; db.execSQL(delete); 

    Basta fare:

     db.delete(DATABASE_TABLE, null, null); 

    Si noti che l’uso di rawQuery dovrebbe funzionare, ma può rappresentare un potenziale rischio per la sicurezza.

    MODIFICARE:

    A proposito del problema che hai quando usi

     db.execSQL 

    Leggi la documentazione , dice che non dovresti usare execSQL con INSERT, DELETE, UPDATE o SELECT

    Il consenso è quello di eliminare e ricreare la tabella, oppure è ansible utilizzare DELETE FROM tbltask che utilizza un’operazione di prestazioni simile a TRUNCATE su altri dbs.

      getWritableDatabase().execSQL("DELETE FROM " + "contacts" + ";"); 

    Qui contacs è il mio nome da tavolo .. Provalo .. Funziona per me ..

    Elimina tutti i valori dalla tabella del database usa questo metodo nel database.

     private SQLiteDatabase odb; public void deleteallvalues(){ odb.delete(TABLE_NAME,null,null) } 

    questo funziona bene.