Xamarin.Android SQLiteConnection无法打开数据库文件

时间:2016-10-20 09:31:09

标签: android sqlite xamarin xamarin.android sqlite-net

我想打开或创建(如果不存在)数据库文件,但是当我尝试创建SQLiteConnection类的新实例时,它会抛出一个错误代码为30的异常(misuse)amd不能打开数据库文件。

这是我的代码:

class DatabaseOpen
{
    protected SQLiteConnection db;
    ... // Here are another attributes of the class, which is not relevant to the database connection.
    public DatabaseOpen(String filename="noNameFree") // String filename = "noNameFree"
    {
        String dbPath = Environment.GetFolderPath(Environment.SpecialFolder.Personal);
        dbPath = Path.Combine(dbPath, filename+".db3");
        Java.IO.File dbFile = Application.Context.GetDatabasePath(dbPath);
        dbFile.Mkdirs();
        var dbObject = new SQLiteConnection(dbPath);
        db = dbObject;
    }
    ... // Here are the other methods of the class which is not relevant to the database connection.
}

在上面的代码中,dbPath变量被设置为以下路径:

/data/data/<AppName>.<AppName>/files/noNameFree.db3

我不知道自己错了什么。我希望有人看到代码的问题。

1 个答案:

答案 0 :(得分:0)

我将我的应用程序从SD卡移动到内部存储,然后它就可以运行了。之后我把它移回我的SD卡,它仍在工作。我认为在部署Visual Studio时没有将它安装到正确的位置。

注意: 我认为在这种情况下SQLite.Net不会抛出MISUSE异常。我将向开发人员提出一个相关问题。