gpt4 book ai didi

android - 如何访问android项目 Assets 文件夹中的sqlite数据库?

转载 作者:行者123 更新时间:2023-11-30 04:05:11 25 4
gpt4 key购买 nike

我需要帮助才能在 android 中使用我现有的 sqlite 数据库。

我将我的 sqlite 数据库放在“/assets/(mydatabase)”但无法使用它。

我正在使用以下代码。有时它显示错误“无法打开数据库”,有时显示错误如“找不到表”。当我从 ddms 中提取数据库文件并使用 sqlite 浏览器打开它时,它删除了我的表意味着我的表不再存在。

所以请帮助我了解如何在 android 中使用我现有的 sqlite 数据库来进行读取和写入操作。

private SQLiteDatabase MyDataBase;
private String path="/data/data/mypackagename/mydatabase";
try{
MyDataBase=SQLiteDatabase.openDatabase(path, null,SQLiteDatabase.OPEN_READWRITE);
Cursor myDbCursor;
myDbCursor=MyDataBase.rawQuery("select user,password from login_master", null);
String username=myDbCursor.getString(0);
String password=myDbCursor.getString(01);
Toast.makeText(getBaseContext(), username, 10).show();
Toast.makeText(getBaseContext(), password, 10).show();
MyDataBase.close();
}
catch(SQLiteException e){
Toast.makeText(getBaseContext(), e.getMessage(), 10).show();
}

最佳答案

不确定,但这可以帮助你

void checkDB() throws Exception {
try {
SQLiteDatabase dbe = SQLiteDatabase
.openDatabase(
"/data/data/yourpackagename/databases/yourfilename.sqlite",
null, 0);
Log.d("opendb", "EXIST");
dbe.close();
} catch (Exception e) {

AssetManager am = getApplicationContext().getAssets();
OutputStream os = new FileOutputStream(
"/data/data/yourpackagename/databases/yourfilename.sqlite");
byte[] b = new byte[100];

int r;
InputStream is = am.open("yourfilename.sqlite");
while ((r = is.read(b)) != -1) {
os.write(b, 0, r);
}
Log.i("DATABASE_HELPER", "Copying the database ");
is.close();
os.close();
}

}

关于android - 如何访问android项目 Assets 文件夹中的sqlite数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/11801119/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com