2011-11-15 18 views
22

SQLiteデータベーステーブルから入力したすべての行を削除します。テーブル名はtbltaskです。 テーブルからテーブルを削除して削除しようとしましたが、ランタイムエラーが発生しています。 Button OnClickListnerイベントでこのイベントをトリガーしたいです。次のコードSQLiteデータベーステーブルからすべてのテーブル行を削除

は、私が試したものです:

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} 

これは私がクエリを以下のために得るLogCat出力です:

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

どのようなエラーが表示されますか? logcatの出力を投稿する – dymmeh

+1

あなたが得ているエラーは何ですか?これをrawqueryの部分なしで試してみてください。 'sqLiteDatabase.delete(MYDATABASE_TABLE、null、null); ' – Rakhita

答えて

69

だけで行います。rawQueryを使用して動作するはずですが、潜在的なセキュリティリスクとなる可能性がありますことを

db.delete(DATABASE_TABLE, null, null); 

注意を。

EDIT:あなたはdocumentationを読む

db.execSQL 

を使用するときに持っている問題について

、それはあなたが、INSERTとExecSQLメソッドを使用して、DELETE、UPDATEまたは

0

コンセンサスがドロップすることで、テーブルを再作成するか、TRUNCATEに似たパフォーマンス操作を使用するDELETE FROM tbltaskを使用できます他のdbsで。

0
getWritableDatabase().execSQL("DELETE FROM " + "contacts" + ";"); 
を選択しないでくださいと言います

ここではcontacsは私のテーブル名です..試してみてください。それは私のために働きます..

+0

これは明示的に" SELECT/INSERT/UPDATE/DELETEではない単一のSQL文を実行する " – dm78

0

データベーステーブルからすべての値を削除すると、データベース内のこのメソッドが使用されます。

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

この作業は問題ありません。

関連する問題