我想从设备上删除SQLite数据库。我试图删除它,但没有删除,因为我可以看到数据库的旧记录。如何删除SQLite数据库android?

试图删除这样的:

deleteDatabase(Constants.DATABASE_NAME);

DatabaseHelper db = new DatabaseHelper(this);

db.createDatabase();

常量:

public class Constants {

public static final int DATABASE_VERSION = 12;

public static final String DATABASE_NAME = "contactsApp";

}

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);

}

}

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

可能是什么问题?任何人都可以帮忙吗?谢谢..

2016-10-20

Sid

+0

怎么样:http://stackoverflow.com/questions/5326918 /如何删除数据库在sqlite –

+0

你的删除方法在哪里? –

Logo

魔乐社区(Modelers.cn) 是一个中立、公益的人工智能社区,提供人工智能工具、模型、数据的托管、展示与应用协同服务,为人工智能开发及爱好者搭建开放的学习交流平台。社区通过理事会方式运作,由全产业链共同建设、共同运营、共同享有,推动国产AI生态繁荣发展。

更多推荐