问题标签 [microsoft.data.sqlite]

For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.

0 投票
1 回答
31 浏览

.net - 使用 AAD 用户凭据解析连接字符串时出错

在 Azure 帐户上,我创建了一个 AAD 用户。
我创建了 Azure SQL 数据库并将新创建的 AAD 用户分配为服务器管理员。
服务器同时具有 AAD 帐户登录和 SQL Server 登录。
我测试了使用 AAD 用户通过 SSMS 连接到服务器,它可以工作。我测试了将其他 AAD 用户添加到数据库,它可以工作(在 SSMS 中)。

现在我正在测试从控制台应用程序到数据库的连接。
我想使用 AAD 用户凭据连接到数据库。
控制台应用程序应该在没有用户登录的情况下工作,所以我想将用户硬编码到连接字符串中。

我的连接字符串是:

从我在解析连接字符串中可以看到,控制台在尝试创建 SqlConnection 时立即中断。

项目文件:

所以,我使用的是最新的 .NET 6、Microsoft.Data.SqlClient 和 System.Data.SqlClient。

0 投票
1 回答
53 浏览

c# - SQLite 抱怨缺少 NOT NULL 约束的列中的空值

将记录插入 SQLite 表时,我遇到了一个奇怪的错误。这是来自客户的日志:

诊断的相关位显然是这样的:

…这似乎很清楚,除了一件事:该details列缺少NOT NULL约束:

我不知道插入失败的值,因此下一步显然是改进我的诊断并等待它再次发生。或者我可以添加空守卫以确保它不再发生并忘记整个事情。

但我很好奇:

  • SQLite 的诊断是否有可能出错,并且它是 NOT NULL真正的罪魁祸首之一?
  • 为什么我的单元测试没有空detail值问题?
  • 这可能与 SQLite 的动态输入方法有关吗?
  • ……或者完全不同的东西?

有任何想法吗?

环境

  • 面向 Windows 10 上的 .NET Framework 4.8
  • 使用Microsoft.Data.Sqlite5.0.14
    (不是System.Data.SQLite——尽管我不确定区别是否相关)。

代码

我不能在这里发布我们的生产代码。相反,这是一个完整的、独立的 C# 程序,我相信它在所有相关方面都与生产代码非常相似。