Aplikasi saya memiliki dua tombol, tombol pertama untuk menghapus catatan pada input pengguna dan tombol kedua adalah untuk menghapus semua catatan. Tetapi ketika saya ingin menghapus data itu menunjukkan pesan
"Aplikasi Anda telah dihentikan paksa".
Silakan periksa kode saya dan beri saya saran.
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();
}
dan
public void delete(String id)
{
String[] args={id};
getWritableDatabase().delete("texts", "_ID=?", args);
}
Tapi itu menunjukkan kesalahan Log cat berikut.
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)
Jawaban:
Anda melewatkan ruang:
db.execSQL("delete * from " + TABLE_NAME);
Juga tidak perlu memasukkan
*
, permintaan yang benar adalah:sumber
*
.atau, jika Anda ingin fungsi mengembalikan jumlah baris yang dihapus ,
Dari dokumentasi metode penghapusan SQLiteDatabase :
sumber
Untuk menghapus semua baris dalam tabel yang dapat Anda gunakan:
sumber
SQLite tidak mendukung
TRUNCATE
perintah. Anda harus menggunakan apa yang sudah Anda coba di baris sebelumnya:PS Anda dapat mengoptimalkan program Anda dengan menggunakan contoh koneksi database yang sama untuk semua pertanyaan Anda ke database yang diberikan alih-alih membuat yang baru untuk setiap permintaan.
sumber
Tidak perlu menggunakan fungsi "eksekusi". Kode berikut ini berfungsi untuk saya :::
sumber
ini bekerja untuk saya :)
sumber
coba kode ini untuk menghapus semua data dari sebuah tabel ..
sumber
rawQuery()
sendirian tidak berfungsi karena tidak menjalankan SQL.gunakan fungsi hapus Sqlit dengan dua parameter nol terakhir.
sumber
Tulis saja
atau
sumber
Saya menggunakan kelas ini untuk menangani basis data. Saya berharap ini akan membantu seseorang di masa depan.
Selamat coding.
}
Pemakaian:
sumber
sumber
Ini bekerja untuk saya. Perbedaannya ada di sini dengan execSQL dan rawQuery. Penggunaan rawQuery paling dalam kasus pencarian dan execSQL sebagian besar digunakan dalam operasi yang berlaku.
sumber
sumber
Dapat bermanfaat.
sumber
metoda ini menghapus semua data dari basis data
sumber
Saya memiliki fungsi yang berfungsi untuk saya di Unity (bersama dengan database SQLite).
kode C #:
sumber
Berikut cara mudah untuk menghapus:
Ini
whereClause
opsional, meneruskan nol akan menghapus semua baris dalam tabel. fungsi delete akan mengembalikan jumlah baris yang terpengaruh jikawhereClause
dilewati sebaliknya akan mengembalikan 0.sumber
Anda dapat menggunakan dua metode berbeda untuk menghapus atau kueri di sqlite android
metode pertama adalah
metode kedua
gunakan metode apa pun untuk kasus penggunaan Anda
sumber
Menggunakan SQLite_NET_PCL v1.6.292 di VStudio - banyak dokumen dan komentar di luar sana sepertinya sudah ketinggalan jaman (saya pikir).
Untuk menghapus semua catatan
sumber