SQLite DB 会在 .NET MAUI 中的应用程序更新时删除吗?

问题描述 投票:0回答:1

我正在使用 .NET MAUI 和 SQLite 为 Android 和 iOS 平台开发一个应用程序 - 它们将在他们的商店中发布。

数据库完全是在项目执行期间创建的 - 例如,这是我创建表的地方:

using Microsoft.Data.Sqlite;

public static class SQLConn {

        private static readonly string DBName = $"dba.db";
        private static readonly string ConnectionString = $"Data Source={DBName};";

        public static void CreateDatabase() {

            string[] databasesToCreate = new string[]
            {
              "CREATE TABLE IF NOT EXISTS \"car_list\" ( \"car_id\" INTEGER UNIQUE, \"car_manufacturer\" TEXT NOT NULL, \"license_plate\" TEXT NOT NULL UNIQUE, \"date_purchase\" TEXT, \"price_purchase\" REAL, \"using_km\" INTEGER NOT NULL, \"km_purchase\" INTEGER, PRIMARY KEY(\"car_id\" AUTOINCREMENT) )",
              "CREATE TABLE IF NOT EXISTS \"user\" ( \"user_id\" INTEGER UNIQUE, \"user_name\" TEXT UNIQUE, \"password\" TEXT, PRIMARY KEY(\"user_id\" AUTOINCREMENT) )",
              "",
            };

            using (var conn = new SqliteConnection(ConnectionString)) {
                conn.Open();

                foreach (string createCommand in databasesToCreate) {
                    using (var command = new SqliteCommand(createCommand, conn)) {
                        command.ExecuteNonQuery();
                    }
                }

                conn.Close();
            }

        }
 }

每次重新编译应用程序时,我都会丢失数据库中存储的所有信息。

这是否意味着我在商店中启动的每次更新,所有数据都会丢失?如果是这样,当用户更新应用程序时,如何进行备份以进行恢复?

.net sqlite maui
1个回答
0
投票

在启动应用程序之前,您需要确定当前数据库是否存在,而不是创建新数据库。

这个可以查看官方文档.NET MAUI本地数据库

并且有一个关于此的官方示例,您可以在这里查看:.NET MAUI - Local Database with SQLite

您可以测试重启应用程序后不会出现此问题。

© www.soinside.com 2019 - 2024. All rights reserved.