白杨商业智能工作室
#技术分享#SQL Server

SqlClient 6.1.5 修了一个致命隐患:ExecuteScalar 不再悄悄吞掉你的错误

· 白杨BI工作室

.NET 连 SQL Server 的同学注意了,Microsoft.Data.SqlClient 6.1.5 发布了,虽然只是 6.1 系列的服务更新,但其中一个 Bug 修复值得你认真看看——它可能正在悄悄吞噬你代码中的错误。 这个 Bug 描述起来有点绕,但影响很实在。

SqlClient 6.1.5 修了一个致命隐患:ExecuteScalar 不再悄悄吞掉你的错误

.NET 连 SQL Server 的同学注意了,Microsoft.Data.SqlClient 6.1.5 发布了,虽然只是 6.1 系列的服务更新,但其中一个 Bug 修复值得你认真看看——它可能正在悄悄吞噬你代码中的错误。

最重要的修复:ExecuteScalar 不再隐藏服务器错误

这个 Bug 描述起来有点绕,但影响很实在。

当 SQL Server 返回行数据后紧接着返回一个错误 token 时(比如 WHERE 子句求值期间的类型转换失败),ExecuteScalar 之前会把这个错误静默吞掉——SqlDataReader.Close() 直接消费掉了错误,调用方完全无感知。

后果是什么?你的事务可能变成僵尸事务(zombied transaction)——你以为一切正常,实际上连接已经处于异常状态,后续操作可能产生不可预知的结果。

6.1.5 修复后,这些错误会被正确抛出到你的应用代码中。如果你之前的代码「一直没报错但结果不对」,升级后可能会开始收到异常——这不是 Bug,而是帮你暴露了以前被隐藏的问题。

国内很多金融、电商系统大量使用 ExecuteScalar 做单值查询(比如查余额、查库存),如果遇到了莫名其妙的脏数据问题,这次升级后排查一下说不定能找到根因。

连接速度优化:不再做无用的 DNS 查找

Windows 平台上的 .NET 应用在用原生 SNI 路径连接 SQL Server 时,即使你用的是 SQL 认证(不是 Windows 集成认证),驱动也会去执行 SPN(Service Principal Name)生成逻辑——这会触发不必要的 DNS 查找,拖慢连接打开速度。

6.1.5 修复了这个回归缺陷,恢复了预期行为:非集成认证场景不再做 SPN 查找。

如果你的应用在高频创建短连接(比如 Serverless 场景、Lambda 函数),这个修复对连接延迟会有可感知的改善。

vector float32 元数据修正

SQL Server 2022 引入了 vector 类型支持后,越来越多的 AI 向量搜索场景开始用 SqlClient 读取 vector 列。但之前 GetFieldType() 和 GetProviderSpecificFieldType() 返回的类型不正确,和 GetValue() 的行为不一致。

6.1.5 统一了这些 API 的返回类型为 SqlVector<float>,如果你在做 RAG、语义搜索等 AI 应用开发,升级后类型判断逻辑会更可靠。

升级方式

dotnet add package Microsoft.Data.SqlClient --version 6.1.5

⚠️ 注意:ExecuteScalar 错误传播修复属于行为变更。如果你的代码里 catch 块一直为空,升级后可能需要补上异常处理逻辑。

还在用老版 System.Data.SqlClient 的同学,建议尽快迁移到 Microsoft.Data.SqlClient。迁移指南:https://github.com/dotnet/SqlClient/blob/main/porting-cheat-sheet.md


📎 原文链接:https://techcommunity.microsoft.com/t5/sql-server-blog/announcing-microsoft-data-sqlclient-6-1-5/ba-p/4516480 📅 发布日期:2026-05-01

相关文章

微软重磅调整:Azure SQL弃用SGX加密意味着什么

微软重磅调整:Azure SQL弃用SGX加密意味着什么

微软 Azure SQL 数据库近日宣布,将正式停用基于英特尔 SGX 安全区域的 Always Encrypted 加密方案,这一变化标志着云端机密计算在数据库加密领域的一次重要技术路线调整。

#技术分享#Azure SQL
Azure SQL数据库中心性能监控来了,你的数据库终于有救了

Azure SQL数据库中心性能监控来了,你的数据库终于有救了

微软近日宣布,Azure SQL 数据库中心(Database Hub)的性能监控功能正式进入公共预览阶段,用户现可在统一门户中直接查看数据库运行指标,无需在多套工具间来回切换。

#技术分享#Azure SQL
微软Fabric数据库中心公共预览开放,数据开发迎来巨变

微软Fabric数据库中心公共预览开放,数据开发迎来巨变

数据库管理正在从被动运维走向主动洞察。微软近日宣布,Fabric 中的数据库中心(Database Hub)正式进入公共预览阶段,这项新能力将数据库运行信号转化为可执行的引导式操作,让数据资产的管理者第一次拥有了驾驶舱式的全局视野。

#技术分享#Azure SQL
SQL Server Always On终于支持多数据库MI链接了

SQL Server Always On终于支持多数据库MI链接了

微软近日宣布,Azure SQL 托管实例(MI Link)现已支持在 SQL Server 的 Always On 可用性组中同时连接多个数据库,该功能目前处于预览阶段。这意味着企业可以在混合云架构下,更灵活地实现多数据库的云端灾备与只读分流。

#技术分享#Azure SQL
Azure SQL数据库无服务器也能自动暂停?省钱大招来了

Azure SQL数据库无服务器也能自动暂停?省钱大招来了

微软近日宣布,Azure SQL 数据库的超大规模无服务器版本正式进入自动暂停与自动恢复功能的公开预览阶段。这意味着企业可以在业务低谷期让数据库自动休眠,在请求到来时秒级唤醒,从根本上重构云数据库的成本模型。

#技术分享#Azure SQL
SQL数据同步退役倒计时,你的数据库迁移方案准备好了吗

SQL数据同步退役倒计时,你的数据库迁移方案准备好了吗

微软近日宣布,Azure SQL 数据同步服务(SQL Data Sync)正式进入退役的最后阶段,该服务将不再支持新的同步组创建,现有用户需尽快迁移至替代方案。 - 停止新建同步组:用户已无法通过门户或 API 创建新的数据同步组,现有同步组仍可运行,但不再获得功能更新。

#技术分享#Azure SQL
有问题?加企业微信 1 对 1 交流 👇
➕ 添加企业微信
备注「白杨」优先通过 · 数据洞察与智能决策
企业微信
企业微信
备注「白杨」优先通过