android– 从sqlite数据库中删除所有表

android– 从sqlite数据库中删除所有表,第1张

概述我做了很多研究,无法找到合适的方法来删除SQLite数据库中的所有表.最后,我做了一个代码来从数据库中获取所有表名,我尝试逐个使用检索到的表名删除表.它没有用.请建议我从数据库中删除所有表的方法.这是我使用的代码:publicvoiddeleteall(){SQLiteDatabasedb=this.get

我做了很多研究,无法找到合适的方法来删除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数据库中删除所有表所遇到的程序开发问题。

如果觉得内存溢出网站内容还不错,欢迎将内存溢出网站推荐给程序员好友。

欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/web/1100149.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-05-28
下一篇 2022-05-28

发表评论

登录后才能评论

评论列表(0条)

保存