首页 > 解决方案 > Azure 函数读取 SQLite 数据库

问题描述

我从第三方收到一个 SQLite '.db3' 数据库文件。我希望在 Azure 函数中读取存储在数据库中的数据,但不需要修改数据库。

在我的 Azure 函数中,我还在 .db3 文件旁边上传了一个文本文件,我可以很好地读取该文本文件的内容,这意味着我拥有该文件夹的 URI 和读取权限。

当我尝试从数据库中读取一些数据时,我收到错误“数据库已锁定”。

读取数据库的代码如下。这在本地有效。

List<object> obs = new List<object>();
using(var con = new SQLiteConnection($"URI=file:{fullUri};mode=ReadOnly"))
{
    con.Open();
    using(var cmd = new SQLiteCommand(sql, con))
    {
        using(SQLiteDataReader rdr = cmd.ExecuteReader())
        {
            while(rdr.Read())
            {
                obs.Add(rdr.GetValues());
            }
        }
    }
    con.Close();
}
return obs;

如何读取数据库?

标签: c#azuresqliteazure-functions

解决方案


我以前遇到过这个问题,读取本地文件......不止一次。这些是我根据场景采取的步骤:

  1. 如果您的 Azure 函数是使用 zipdeploy 部署的,则在“配置”>“应用程序设置”下,将“WEBSITE_RUN_FROM_PACKAGE”从 更改10.
  2. 如果您尝试引用的文件保存在wwwrootAzure 函数下,我会尝试将其放在其他位置,例如d:\local.

推荐阅读