Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/android/206.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何使用API在Android中创建SQLite数据库_Android - Fatal编程技术网

如何使用API在Android中创建SQLite数据库

如何使用API在Android中创建SQLite数据库,android,Android,我无法使用API创建新数据库 SQLiteDatabase.openOrCreate(String path,CursorFactory Factory); 当我使用这个API时,它会抛出一个异常 无法打开数据库文件 请帮助我如何修复此异常。我想您需要的是此函数:假设您要创建表“设置”表和“myDB.db”。使用此类创建数据库和表 public class MyDbConnector extends SQLiteOpenHelper { private static final Str

我无法使用API创建新数据库

SQLiteDatabase.openOrCreate(String path,CursorFactory Factory);
当我使用这个API时,它会抛出一个异常

无法打开数据库文件


请帮助我如何修复此异常。

我想您需要的是此函数:

假设您要创建表“设置”表和“myDB.db”。使用此类创建数据库和表

public class MyDbConnector extends SQLiteOpenHelper {
    private static final String TAG = "MyDbConnector";
    public MyDbConnector(Context context) {
        super(context, "myDB.db", null, 3);
    }
    @Override
    public void onCreate(SQLiteDatabase db) {
      db.execSQL("CREATE TABLE " + Constants.TABLE_SETTINGS + " ("
              + Constants.TABLE_SETTINGS_FIELD_KEY + " TEXT PRIMARY KEY, "
              + Constants.TABLE_SETTINGS_FIELD_VALUE + " TEXT);"
              );
    }
}
以及在DB使用中读取/写入

SQLiteDatabase db = new MyDbConnector(this).getReadableDatabase(); //To read tables in DB
SQLiteDatabase db = new MyDbConnector(this).getWritableDatabase(); // To write something in DB

但是如何使用这个方法来创建一个新的数据库???@Prachi:也许我应该说清楚,您必须先实例化一个SQLiteOpenHelper对象,然后才能调用该函数。只需查看该类的构造函数,就可以了解需要提供什么:我想在不使用SQLiteOpenHelper类的情况下打开数据库..有没有可能在不使用OpenHelper类的情况下打开/创建数据库?有很多简单的方法可以做到这一点,为什么要在没有SQLLiteOpenHelper的情况下打开数据库?请提供一些您尝试过的代码…Database=SQLiteDatabase.openDatabase(uri.getPath(),null,SQLiteDatabase.CREATE_,如果需要);