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

我正在尝试在树莓派上创建一个数据库,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周,而且它已经变老了。

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

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

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();
    }
}
,

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

本文链接:https://www.f2er.com/3159912.html

大家都在问