sqlite无法通过Raspberry pi上的Windows IOT在UPW中打开数据库文件

时间:2019-11-05 11:47:53

标签: c# sqlite uwp raspberry-pi windows-iot-core-10

我正在尝试在树莓派上创建一个数据库,UWP可将其用于读取和写入。但我总是收到错误“ SQLite错误14:无法打开数据库文件”,而且我似乎无法修复它。我曾尝试寻找修复程序,但似乎一切都适合sqlite.net框架,因为我正在使用Microsoft.data.sqlite框架。我曾尝试使用sqlite.net框架,但找不到所有方法的文档。

   using (SqliteConnection db =
                new SqliteConnection("Filename = sqliteSPSystem.db"))
            //"Filename=sqliteSPSystem.db"
            {
                db.Open();

                String tableCommand = "CREATE TABLE IF NOT " +
                    "EXISTS ParkingData (Primary_Key INTEGER PRIMARY KEY, " +
                    "TimeIN NVARCHAR(2048) NULL,TimeOUT NVARCHAR(2048) NULL)";

                SqliteCommand createTable = new SqliteCommand(tableCommand, db);

                createTable.ExecuteReader();
            }

克服这个问题真的很不错,因为我现在已经挣扎了大约2周,而且它已经变老了。

2 个答案:

答案 0 :(得分:0)

您需要检查数据库文件是否存在于文件夹中,如果不存在,则可以如下创建数据库文件。

public async static void InitializeDatabase()
{ 
     await ApplicationData.Current.LocalFolder.CreateFileAsync("sqliteSPSystem.db", CreationCollisionOption.OpenIfExists);
     string dbpath = Path.Combine(ApplicationData.Current.LocalFolder.Path, "sqliteSPSystem.db");
     using (SqliteConnection db =
        new SqliteConnection($"Filename={dbpath}"))
    {
        db.Open();

        String tableCommand = "CREATE TABLE IF NOT " +
                "EXISTS ParkingData (Primary_Key INTEGER PRIMARY KEY, " +
                "TimeIN NVARCHAR(2048) NULL,TimeOUT NVARCHAR(2048) NULL)";

        SqliteCommand createTable = new SqliteCommand(tableCommand, db);

        createTable.ExecuteReader();
    }
}

答案 1 :(得分:0)

再次感谢。这行得通,我最终可以继续进行该项目