【问题标题】:Can't open a SqLiteConnection with asp.net core 3.1无法使用 asp.net core 3.1 打开 SqlLiteConnection
【发布时间】:2020-07-22 03:21:47
【问题描述】:

我正在尝试将 SQLite 与 asp.net core 3.1 一起使用 我安装了 MS Data SQLite Core nuget 包。

当我没有在连接字符串中指定版本时,SQLiteConnection 中的服务器版本变量为空,我得到了这个错误:

System.NullReferenceException:'对象引用未设置为对象的实例。'

但是当我指定版本时,它说不支持关键字版本... 也许这是另一个问题?

我的代码:

var connectionStringBuilder = new SqliteConnectionStringBuilder(connectionString)
{
    DataSource = "./MyTestDB.db",
    Mode = SqliteOpenMode.ReadWriteCreate,
    Password = "Toto",
}.ToString();

using (var connection = new SqliteConnection(connectionStringBuilder))
{
    connection.Open();
}

PS : 我也试过完整路径...

提前感谢您阅读本文。经过研究,我没有找到答案..

【问题讨论】:

  • 你为什么要用连接字符串和对象初始化来构造它?
  • 另外,ToString() 给你什么?您应该使用ConnectionString 属性,而不是ToString()
  • @Crowcoder ToString() return the connection string
  • 我认为您正在混合 System.Data 和 Microsoft.Data 命名空间。尝试使用Microsoft.Data 完全限定构建器和连接。 Microsoft.Data 中没有 Version 键。
  • 嗨!谢谢你帮助我。当我只有: using (var connection = new Microsoft.Data.Sqlite.SqliteConnection("Data Source=./MyDB.db")) { connection.Open(); } 我没有看到错误 -_-'

标签: c# sqlite asp.net-core database-connection


【解决方案1】:

我通过 System.Data.SQLite.Core 更改 Microsoft.Data.SQLite.Core 包解决了我的连接问题。 它现在可以工作了,但这仍然不能解释为什么 MS 不能和我一起工作..

【讨论】:

    【解决方案2】:

    我找到了。 SQLite“标准”没有加密。问题是密码。我把它取下来,然后它起作用了。 谢谢

    【讨论】:

      【解决方案3】:

      问题是我包含了Microsoft.Data.Sqlite.Core 而不是Microsoft.Data.Sqlite(注意缺少.Core)。

      【讨论】:

        猜你喜欢
        • 2021-07-07
        • 2022-01-22
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-02-06
        • 2021-01-18
        相关资源
        最近更新 更多