.net 8中 System.Data.SqlClient打开数据库失败

发布时间 2023-12-28 11:42:22作者: y_w_k

问题背景

项目升级到.Net 8后,在使用System.Data.SqlClient连接SqlServer提示如下异常

System.InvalidOperationException:“Internal connection fatal error.”

 

开始解决问题:

(1)排除了连接字符串 以及 代码编写的问题

(2)System.Data.SqlClient升到最新版4.8.5,依旧报错

 

(3)System.Data.SqlClient下降到4.3以下,发现连接成功,但缺少DataReader等引用对象,降级方案也不行

(4)框架降级到.Net 7 可正常使用,但违背升级初衷

(5)最后使用Micsoft.Data.SqlClient进行替换,问题解决

 

Micsoft.Data.SqlClient和Systen.Data.SqlClient的比较:

 

官方说明:https://learn.microsoft.com/zh-cn/sql/connect/ado-net/introduction-microsoft-data-sqlclient-namespace?view=sql-server-ver16

简单来说,Micsoft.Data.SqlClient是.net 框架升级后对System.Data.SqlClient的升级,保持了相同的API,所以迁移过程很平滑

 

总结:新的开发最好还是使用Microsoft.Data.SqlClient