sqlite не может открыть файл базы данных в UPW с Windows IOT на Raspberry pi - PullRequest
0 голосов
/ 05 ноября 2019

Я пытаюсь создать базу данных на моем Raspberry Pi, которую 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 голосов
/ 07 ноября 2019

Еще раз спасибо. Это сработало, и я могу, наконец, продолжить проект

0 голосов
/ 06 ноября 2019

Вам необходимо проверить, существует ли файл базы данных в папке, если он не существует, вы можете создать файл БД, как показано ниже.

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