无法以读/写模式打开数据库 [英] Could not open the database in read/write mode

查看:169
本文介绍了无法以读/写模式打开数据库的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我正在尝试从SD卡加载数据库文件,但出现异常. 以下是例外情况

I'm trying to load a Database file from my SD card,but is giving exception. Below is the exception

org.sqlite.database.sqlite.SQLiteException: not an error (code 0): Could not open the database in read/write mode.

这是我的代码:

public void csr_test_1() throws Exception 

{

DB_PATH=new File("/storage/sdcard1/sk2.db");
   SQLiteDatabase db = SQLiteDatabase.openOrCreateDatabase(DB_PATH, null);
   String res = "";


Cursor c = db.rawQuery("SELECT synsetid, w2.lemma FROM sense LEFT JOIN word AS w2 ON   w2.wordid=sense.wordid WHERE sense.synsetid IN (SELECT sense.synsetid FROM word AS w1 LEFT      JOIN sense ON w1.wordid=sense.wordid WHERE w1.lemma='"+ "life" + "') AND w2.lemma<>'" + "life" + "'", null);
if( c!=null ){
 boolean bRes;
 for(bRes=c.moveToFirst(); bRes; bRes=c.moveToNext()){
String x = c.getString(0);
res = res + "." + x;
}
}else{
}
test_result("csr_test_1.1", res, ".one.two.three");

db.close();
test_result("csr_test_1.2", db_is_encrypted(), "unencrypted");
}

这些是我正在使用的权限

These are the permission i'm using

<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.ACCESS_NETWORK_STATE" />
<uses-permission android:name="android.permission.ACCESS_WIFI_STATE" />
<uses-permission android:name="android.permission.WRITE_EXTERNAL_STORAGE" />
<uses-permission android:name="android.permission.WRITE_SETTINGS" />
<uses-permission android:name="android.permission.EXPAND_STATUS_BAR" />
<uses-permission android:name="android.permission.READ_EXTERNAL_STORAGE" />
<uses-permission android:name="com.android.vending.BILLING" />

![enter image description here][1]
![enter image description here][2]

请帮帮我...谢谢

推荐答案

如果

This exception is thrown if sqlite3_db_readonly() returns non-zero. It can return non-zero if

  • 数据库文件是只读的,或者

  • the database file is read-only, or

数据库文件不存在.

(参考)

您有一个硬编码的路径"/storage/sdcard1/sk2.db"-那里可能不存在数据库.使用来自 Environment 的变量访问外部存储,而不是硬编码路径

You have a hardcoded path "/storage/sdcard1/sk2.db" - it's likely a database does not exist there. Use variables from Environment to access your external storage instead of hardcoded paths.

这篇关于无法以读/写模式打开数据库的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆