热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

如何删除SQLite数据库android?-HowtodeleteSQLitedatabaseandroid?

IwanttodeletetheSQLitedatabasefromdevice.Iamtryingtodeleteitbutitsnotgettingdelet

I want to delete the SQLite database from device. I am trying to delete it but its not getting delete, because I can see the old records of database.

我想从设备中删除SQLite数据库。我正在尝试删除它,但是没有得到删除,因为我可以看到数据库的旧记录。

Trying to delete like this:

试着像这样删除:

        deleteDatabase(Constants.DATABASE_NAME);

            DatabaseHelper db = new DatabaseHelper(this);
            db.createDatabase();

Constants :

常量:

    public class Constants {

    public static final int DATABASE_VERSION = 12;
    public static final String DATABASE_NAME = "contactsApp";
}

DatabaseHelper :

DatabaseHelper:

public class DatabaseHelper extends SQLiteOpenHelper {

    private static final String USER_TABLE = "userTable";
    private static final String KEY_USER_NAME = "userName";
    private static final String KEY_EMAIL_ID = "emailId";
    private static final String KEY_MOBILE_NO = "mobileNo";
    private static final String KEY_PROFILE_IMAGE = "profileImage";
    private static final String KEY_FULL_NAME = "fullName";
    private static final String KEY_DEVICE_ID = "deviceId";
    private static final String KEY_PASSWORD ="password";
    private static final String KEY_USER_ID = "userId";
    private static final String KEY_JOB_TITLE = "jobTitle";
    private static final String KEY_WORK_ADDRESS = "workAddress";
    private static final String KEY_WORK_PHOnE= "workPhone";
    private static final String KEY_HOME_ADDRESS = "homeAddress";


    private static final String CONTACT_TABLE = "contactTable";
    private static final String KEY_CONTACT_NAME = "contactName";
    private static final String KEY_CONTACT_EMAIL_ID = "contactEmailId";
    private static final String KEY_CONTACT_MOBILE_NO = "contactMobileNo";
    private static final String KEY_CONTACT_PROFILE_IMAGE = "contactProfileImage";
    private static final String KEY_CONTACT_ID = "contactId";
    private static final String KEY_CONTACT_FULL_NAME = "fullName";
    private static final String KEY_CONTACT_JOB_TITLE = "jobTitle";
    private static final String KEY_CONTACT_WORK_ADDRESS = "workAddress";
    private static final String KEY_CONTACT_WORK_PHOnE= "workPhone";
    private static final String KEY_CONTACT_HOME_ADDRESS = "homeAddress";

    private Context context;

    public DatabaseHelper(Context context) {
        super(context, Constants.DATABASE_NAME, null, Constants.DATABASE_VERSION);
        //3rd argument to be passed is CursorFactory instance
        this.cOntext= context;
    }

    // Creating Tables
    @Override
    public void onCreate(SQLiteDatabase db) {

        createTable(db);

    }

    public void createDatabase(){
        context.deleteDatabase(Constants.DATABASE_NAME + ".db");
        SQLiteDatabase db = this.getReadableDatabase();
    }


    public void createTable(SQLiteDatabase db){
        String CREATE_USER_TABLE = "CREATE TABLE " + USER_TABLE + "("
                + KEY_USER_ID + " TEXT,"
                + KEY_USER_NAME + " TEXT,"
                + KEY_PASSWORD + " TEXT,"
                + KEY_MOBILE_NO + " TEXT,"
                + KEY_EMAIL_ID + " TEXT,"
                + KEY_PROFILE_IMAGE + " TEXT,"
                + KEY_FULL_NAME + " TEXT,"
                + KEY_DEVICE_ID + " TEXT,"
                + KEY_JOB_TITLE + " TEXT,"
                + KEY_HOME_ADDRESS + " TEXT,"
                + KEY_WORK_ADDRESS + " TEXT,"
                + KEY_WORK_PHONE + " TEXT " + ")";

        db.execSQL(CREATE_USER_TABLE);

        String CREATE_CONTACT_TABLE = "CREATE TABLE " + CONTACT_TABLE + "("
                + KEY_CONTACT_ID + " TEXT,"
                + KEY_CONTACT_NAME + " TEXT,"
                + KEY_CONTACT_MOBILE_NO + " TEXT,"
                + KEY_CONTACT_EMAIL_ID + " TEXT,"
                + KEY_CONTACT_PROFILE_IMAGE + " TEXT,"
                + KEY_CONTACT_FULL_NAME + " TEXT,"
                + KEY_CONTACT_JOB_TITLE+ " TEXT,"
                + KEY_CONTACT_WORK_ADDRESS + " TEXT,"
                + KEY_CONTACT_WORK_PHONE + " TEXT,"
                + KEY_CONTACT_HOME_ADDRESS + " TEXT " + ")";

        db.execSQL(CREATE_CONTACT_TABLE);

    }

    // Upgrading database
    @Override
    public void onUpgrade(SQLiteDatabase db, int oldVersion, int newVersion) {
        // Drop older table if existed
        db.execSQL("DROP TABLE IF EXISTS " + USER_TABLE);
        db.execSQL("DROP TABLE IF EXISTS " + CONTACT_TABLE);

        context.deleteDatabase(Constants.DATABASE_NAME + ".db");

        createTable(db);

    }

}

I also tried to delete only tables, but its not getting delete.

我也尝试只删除表,但它没有得到删除。

What can be the issue? Can anyone help please? Thank you..

有什么问题呢?谁能帮助好吗?谢谢你!

2 个解决方案

#1


2  

String myPath = DB_PATH + DB_NAME;
SQLiteDatabase.deleteDatabase(new File(myPath));

OR

 context.deleteDatabase(DATABASE_NAME);

for more detail.. How to delete SQLite database from Android programmatically

为更多的细节。如何以编程方式从Android中删除SQLite数据库

#2


0  

Make sure you close all Database connections before deleting. Else you'll have to restart the application to see the change

请确保在删除之前关闭所有数据库连接。否则,您必须重新启动应用程序才能看到更改


推荐阅读
  • 在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板
    本文介绍了在Xamarin XAML语言中如何在页面级别构建ControlTemplate控件模板的方法和步骤,包括将ResourceDictionary添加到页面中以及在ResourceDictionary中实现模板的构建。通过本文的阅读,读者可以了解到在Xamarin XAML语言中构建控件模板的具体操作步骤和语法形式。 ... [详细]
  • 本文主要复习了数据库的一些知识点,包括环境变量设置、表之间的引用关系等。同时介绍了一些常用的数据库命令及其使用方法,如创建数据库、查看已存在的数据库、切换数据库、创建表等操作。通过本文的学习,可以加深对数据库的理解和应用能力。 ... [详细]
  • Monkey《大话移动——Android与iOS应用测试指南》的预购信息发布啦!
    Monkey《大话移动——Android与iOS应用测试指南》的预购信息已经发布,可以在京东和当当网进行预购。感谢几位大牛给出的书评,并呼吁大家的支持。明天京东的链接也将发布。 ... [详细]
  • 本文介绍了使用Java实现大数乘法的分治算法,包括输入数据的处理、普通大数乘法的结果和Karatsuba大数乘法的结果。通过改变long类型可以适应不同范围的大数乘法计算。 ... [详细]
  • 阿,里,云,物,联网,net,core,客户端,czgl,aliiotclient, ... [详细]
  • baresip android编译、运行教程1语音通话
    本文介绍了如何在安卓平台上编译和运行baresip android,包括下载相关的sdk和ndk,修改ndk路径和输出目录,以及创建一个c++的安卓工程并将目录考到cpp下。详细步骤可参考给出的链接和文档。 ... [详细]
  • Android Studio Bumblebee | 2021.1.1(大黄蜂版本使用介绍)
    本文介绍了Android Studio Bumblebee | 2021.1.1(大黄蜂版本)的使用方法和相关知识,包括Gradle的介绍、设备管理器的配置、无线调试、新版本问题等内容。同时还提供了更新版本的下载地址和启动页面截图。 ... [详细]
  • Spring特性实现接口多类的动态调用详解
    本文详细介绍了如何使用Spring特性实现接口多类的动态调用。通过对Spring IoC容器的基础类BeanFactory和ApplicationContext的介绍,以及getBeansOfType方法的应用,解决了在实际工作中遇到的接口及多个实现类的问题。同时,文章还提到了SPI使用的不便之处,并介绍了借助ApplicationContext实现需求的方法。阅读本文,你将了解到Spring特性的实现原理和实际应用方式。 ... [详细]
  • 图解redis的持久化存储机制RDB和AOF的原理和优缺点
    本文通过图解的方式介绍了redis的持久化存储机制RDB和AOF的原理和优缺点。RDB是将redis内存中的数据保存为快照文件,恢复速度较快但不支持拉链式快照。AOF是将操作日志保存到磁盘,实时存储数据但恢复速度较慢。文章详细分析了两种机制的优缺点,帮助读者更好地理解redis的持久化存储策略。 ... [详细]
  • C# 7.0 新特性:基于Tuple的“多”返回值方法
    本文介绍了C# 7.0中基于Tuple的“多”返回值方法的使用。通过对C# 6.0及更早版本的做法进行回顾,提出了问题:如何使一个方法可返回多个返回值。然后详细介绍了C# 7.0中使用Tuple的写法,并给出了示例代码。最后,总结了该新特性的优点。 ... [详细]
  • 开发笔记:Java是如何读取和写入浏览器Cookies的
    篇首语:本文由编程笔记#小编为大家整理,主要介绍了Java是如何读取和写入浏览器Cookies的相关的知识,希望对你有一定的参考价值。首先我 ... [详细]
  • JDK源码学习之HashTable(附带面试题)的学习笔记
    本文介绍了JDK源码学习之HashTable(附带面试题)的学习笔记,包括HashTable的定义、数据类型、与HashMap的关系和区别。文章提供了干货,并附带了其他相关主题的学习笔记。 ... [详细]
  • 解决.net项目中未注册“microsoft.ACE.oledb.12.0”提供程序的方法
    在开发.net项目中,通过microsoft.ACE.oledb读取excel文件信息时,报错“未在本地计算机上注册“microsoft.ACE.oledb.12.0”提供程序”。本文提供了解决这个问题的方法,包括错误描述和代码示例。通过注册提供程序和修改连接字符串,可以成功读取excel文件信息。 ... [详细]
  • Android日历提醒软件开源项目分享及使用教程
    本文介绍了一款名为Android日历提醒软件的开源项目,作者分享了该项目的代码和使用教程,并提供了GitHub项目地址。文章详细介绍了该软件的主界面风格、日程信息的分类查看功能,以及添加日程提醒和查看详情的界面。同时,作者还提醒了读者在使用过程中可能遇到的Android6.0权限问题,并提供了解决方法。 ... [详细]
  • mysql自动打开文件_让docker中的mysql启动时自动执行sql文件
    本文提要本文目的不仅仅是创建一个MySQL的镜像,而是在其基础上再实现启动过程中自动导入数据及数据库用户的权限设置,并且在新创建出来的容器里自动启动My ... [详细]
author-avatar
天使的眼泪174
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有