我做了很多研究,无法找到合适的方法来删除sqlite数据库中的所有表.最后,我做了一个代码来从数据库中获取所有表名,我尝试逐个使用检索到的表名删除表.它没有用.
请建议我从数据库中删除所有表的方法.
这是我使用的代码:
public voID deleteall(){ sqliteDatabase db = this.getWritableDatabase(); Cursor c = db.rawquery("SELECT name FROM sqlite_master WHERE type='table'", null); do { db.delete(c.getString(0),null,null); }while (c.movetoNext());}
按钮单击时调用函数deleteall(),其代码如下:
public voID buttonClick(VIEw vIEw){ String button_text; button_text = ((button) vIEw).getText().toString(); if(button_text.equals("Delete Database")) { DatabaseHelper a = new DatabaseHelper(this); a.deleteall(); Toast.makeText(getApplicationContext(), "Database Deleted Succesfully!", Toast.LENGTH_SHORT).show(); }}
解决方法:
使用DROP table:
// query to obtain the names of all tables in your databaseCursor c = db.rawquery("SELECT name FROM sqlite_master WHERE type='table'", null);List<String> tables = new ArrayList<>();// iterate over the result set, adding every table name to a Listwhile (c.movetoNext()) { tables.add(c.getString(0));}// call DROP table on every table namefor (String table : tables) { String dropquery = "DROP table IF EXISTS " + table; db.execsql(dropquery);}
总结 以上是内存溢出为你收集整理的android – 从sqlite数据库中删除所有表全部内容,希望文章能够帮你解决android – 从sqlite数据库中删除所有表所遇到的程序开发问题。
如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)