无法打开数据库文件Windows Store App 8.1

时间:2014-10-03 15:09:45

标签: windows-store-apps sqlite-net

我正在尝试在Windows 8.1 Modern UI应用程序中实现数据库。 我成功地为Windows Phone 8.1应用程序做了这个,但它在新的Windows 8.1应用程序中不起作用。

当我实现SQLiteException时,我收到了Could not open database file: MyAppBase.db (CannotOpen)消息SQLiteConnection

public static DatabaseHelper Instance
    {
        get
        {
            if (_instance == null)
            {
                _instance = new DatabaseHelper();
            }

            return _instance;
        }
    }

    public DatabaseHelper()
    {
        _connection = new SQLiteConnection(DATABASE_NAME);

        _connection.CreateTable<UserEntity>();
    }

我按照以下步骤操作: 在项目引用上添加'sqlite-net'到Nuget引用,Checked'SQLite for Windows Runtime(Windows 8.1)'和'Microsoft Visual C ++ 2013 Runtime Package for Windows',Targetted build to x86。

我怎样才能使这个工作?

2 个答案:

答案 0 :(得分:8)

SQLite需要一个创建数据库的路径而不仅仅是数据库名称

尝试这样的事情

string path = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, DATABASE_NAME);

_connection = new SQLite.SQLiteConnection(path)

希望这有帮助

答案 1 :(得分:0)

使用

QString databaseName = QFileDialog::getOpenFileName(this,tr("Open database"),
                                                        "",
                                                        tr("Databáze (*.db)"));
mydb = QSqlDatabase::addDatabase("QSQLITE");
mydb.setDatabaseName("databaseName");

if (!mydb.open()) {
    ui->statusBar->showMessage("Databáze nebyla připojena!",2000);
    databaseCheck = false;
}
else if (mydb.open()) {
    ui->statusBar->showMessage("Databáze byla úspěšně připojena.",2000);
    databaseCheck = true;
}