首页 > 解决方案 > ASP.NET CORE Web 应用程序抛出 SQLiteException:无法打开数据库文件

问题描述

我有一个 SQLite 数据库,并将其上传到我的服务器 [托管在 azure 中]。但是当我尝试访问它时,它会抛出SQLiteException: unable to open database file.

我的连接字符串是这样的 -

string connectionString = "Data Source=https:\\mywebsite.azurewebsites.net\\DB\\persondb.db; Version=3"

我也试过这个 -

string connectionString = "Data Source=~/DB/persondb.db; Version=3";

这是我的完整方法的代码 -

        public static List<PersonDetails> GetPersons()
        {
            // string connectionString = "Data Source=https:\\mywebsite.com\\DB\\persondb.db; Version=3";
            string connectionString = "Data Source=~/DB/persondb.db; Version=3";

            using (IDbConnection cnn = new SQLiteConnection(connectionString))
            {
                var output = cnn.Query<PersonDetails>
                    ("SELECT * FROM persons",
                    new DynamicParameters());
                return output.ToList();
            }
        }

我该如何解决这个问题?

标签: c#asp.netazuresqlite

解决方案


请参阅关于 SQLite

SQLite 是一个嵌入式 SQL 数据库引擎。与大多数其他 SQL 数据库不同,SQLite 没有单独的服务器进程。SQLite 直接读写普通磁盘文件。

您可以在 ASP.NET Web 项目中使用以下代码:

    string path = Server.MapPath("~/DB");
    string connectionString = $"Data Source={path}/demo.db; Version=3";

    using (var con = new SQLiteConnection(connectionString))
    {
        con.Open();
        var cmd = new SQLiteCommand("SELECT SQLITE_VERSION()", con);
        return cmd.ExecuteScalar().ToString();
    }

代码Server.MapPath("~/DB")将在您的项目中找到文件夹的物理路径DB,然后连接字符串应该可以工作。


推荐阅读