【问题标题】:Database not created (file cannot be found) in SQLite [duplicate]在 SQLite 中未创建数据库(找不到文件)[重复]
【发布时间】:2018-09-23 15:24:36
【问题描述】:

我在 android studio 中创建了一个名为 memberInfo.db 的数据库。但在设备文件资源管理器中找不到该文件。我正在使用安卓工作室 3.1.3。我附上了我的设备文件浏览器的图像。

DBHelper.java 类

public static final String DATABASE_NAME = "memberInfo.db";

public DBHelper(Context context) {
    super(context, DATABASE_NAME, null, 1);
}

@Override
public void onCreate(SQLiteDatabase sqLiteDatabase) {
    String SQL_CREATE_ENTRIES = "CREATE TABLE " +
            MembersMaster.Members.TABLE_NAME + " (" +
            MembersMaster.Members.COLUMN_NAME_MEMBER_ID + " INTEGER PRIMARY KEY AUTOINCREMENT," +
            MembersMaster.Members.COLUMN_NAME_FULLNAME + " TEXT," +
            MembersMaster.Members.COLUMN_NAME__ADDRESS + " TEXT," +
            MembersMaster.Members.COLUMN_NAME__PHONE + " TEXT," +
            MembersMaster.Members.COLUMN_NAME__EMAIL + "TEXT," +
            MembersMaster.Members.COLUMN_NAME__BIRTHDATE + "TEXT)";

            sqLiteDatabase.execSQL(SQL_CREATE_ENTRIES);

}


@Override
public void onUpgrade(SQLiteDatabase sqLiteDatabase, int i, int i1) {

}
}

MembersMaster.java 类

package com.heisenberg.librarywiz;

import android.provider.BaseColumns;

public final class MembersMaster {

private MembersMaster() {};

public static class Members implements BaseColumns{

    public static final String TABLE_NAME = "members";
    public static final String COLUMN_NAME_MEMBER_ID = "memId";
    public static final String COLUMN_NAME_FULLNAME = "fullname";
    public static final String COLUMN_NAME__ADDRESS ="address";
    public static final String COLUMN_NAME__PHONE ="phone";
    public static final String COLUMN_NAME__EMAIL ="email";
    public static final String COLUMN_NAME__BIRTHDATE ="birthdate";

}

}

【问题讨论】:

标签: java android sqlite


【解决方案1】:

在 SQL_CREATE_ENTIRES 中试试这个:

String SQL_CREATE_ENTRIES = "CREATE TABLE " +
        MembersMaster.Members.TABLE_NAME + " (" +
        MembersMaster.Members.COLUMN_NAME_MEMBER_ID + " INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT, " +
        MembersMaster.Members.COLUMN_NAME_FULLNAME + " TEXT, " +
        MembersMaster.Members.COLUMN_NAME__ADDRESS + " TEXT, " +
        MembersMaster.Members.COLUMN_NAME__PHONE + " TEXT, " +
        MembersMaster.Members.COLUMN_NAME__EMAIL + "TEXT, " +
        MembersMaster.Members.COLUMN_NAME__BIRTHDATE + "TEXT);";

你在表达式的末尾留下了分号。

另一个提示:

public static class Members implements BaseColumns{

public static final String TABLE_NAME = "members";
public static final String COLUMN_NAME_MEMBER_ID = BaseColumns._ID; // if you implement BaseColumns, the table IS should use this
public static final String COLUMN_NAME_FULLNAME = "fullname";
public static final String COLUMN_NAME__ADDRESS ="address";
public static final String COLUMN_NAME__PHONE ="phone";
public static final String COLUMN_NAME__EMAIL ="email";
public static final String COLUMN_NAME__BIRTHDATE ="birthdate";

}

对于数据库名称,请尝试仅使用小写字母,例如“member_info.db”。 db 应在以下目录中创建: /data/data/your_package_name/databases/member_info.db 请让我知道它是否有效(或无效......)

【讨论】:

  • 它没有解决问题...仍然没有找到数据库文件...无论如何谢谢
  • 仍然没有找到文件.. 我检查了设备文件资源管理器 -> 数据 -> 应用程序 -> myprojectpackagename -> android -> 数据库文件夹。在你提到的路径中,它说“run-as: Package 'myPackageName' is unknown'”...请看一下...谢谢
  • 不是 explorer -> data -> app ...而是 explorer->data->data->myprojectpackage->databases 文件夹!还有一件事:除非你至少没有调用一次'dbHelper.getReadableDatabase();'或您的 Activity 中的其他 DBHelper 方法,您的数据库将不会被创建
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2014-09-30
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多