如何从Android中的SQLite中删除所有项目

我想创build一个应用程序,用户点击一个button,并清除SQLite数据库。 以下是我迄今为止所尝试的:

db.delete(TABLE_NAME, null, null); 

我究竟做错了什么?

Solutions Collecting From Web of "如何从Android中的SQLite中删除所有项目"

你的delete()调用是正确的。 你有可写的数据库吗? 以下是使用delete的方法的示例:

 /** * Remove all users and groups from database. */ public void removeAll() { // db.delete(String tableName, String whereClause, String[] whereArgs); // If whereClause is null, it will delete all rows. SQLiteDatabase db = helper.getWritableDatabase(); // helper is object extends SQLiteOpenHelper db.delete(DatabaseHelper.TAB_USERS, null, null); db.delete(DatabaseHelper.TAB_USERS_GROUP, null, null); } 

db.delete(TABLE_NAME,null,null); 是删除表中所有行的正确语法。 但是我想你会直接给表名,而不是用双引号括起来。 像这样尝试

 db.delete("TABLE_NAME", null, null); 

这可能有助于:)

实际上我做的另一种方式是DROP表,然后调用SQLiteDatabaseonCreate方法。 我不知道哪个是最有效的DeleteDrop因为我没有真正深入到每个方法的效率,但它对我很好,因为在我的初始数据库中,我有一些默认值设置,所以当我打电话给数据库的onCreate方法我也有一些PUT方法。 这节省了代码复制。 (而不是做删除,然后放在我的onCreatefunction,我得到了一个多用途)。

我称之为reset 。 所以你只需要做db.reset() ,然后默认的值在你创build表之后添加到onCreate

 public void reset () throws SQLException { db = DBHelper.getWritableDatabase (); db.execSQL ("drop table "+TABLE_NAME); db.close (); this.DBHelper.onCreate (this.db); } 

使用此代码清除所有数据库内容

 Cursor c = db.rawQuery("SELECT name FROM sqlite_master WHERE type='table'", null); String tableName=""; if (c.moveToFirst()) { while ( !c.isAfterLast() ) { tableName = c.getString( c.getColumnIndex("name")); if(!tableName.equals('android_metadata')){ db.execSQL("DROP TABLE '"+tableName+"'"); } c.moveToNext(); } } c.close(); 
 SQLiteDatabase db = this.getWritableDatabase(); //get database db.execSQL("DELETE FROM tablename"); //delete all rows in a table db.close(); 

对我来说经典的mysql语句:

 SQLiteDatabase sqLiteDatabase = context.openOrCreateDatabase(Database.DATABASE_NAME, Context.MODE_PRIVATE, null, null); sqLiteDatabase.execSQL("DELETE FROM " + tableName1); sqLiteDatabase.execSQL("DELETE FROM " + tableName2); sqLiteDatabase.execSQL("DELETE FROM " + tableName3); sqLiteDatabase.execSQL("DELETE FROM " + tableName4); 

完美的工作。 祝你好运 :)
ps .:没有开始/ endtransaction或closeDatabase …

在设备上开发时你可以尝试一件事情:

设置>>应用程序>>(您的应用程序名称)>>存储>>清除caching并清除数据

通过清除应用程序数据和应用程序caching,还可以清除sql数据库。