.net 8中 System.Data.SqlClient打开数据库失败
问题背景:
项目升级到.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的比较:
简单来说,Micsoft.Data.SqlClient是.net 框架升级后对System.Data.SqlClient的升级,保持了相同的API,所以迁移过程很平滑
总结:新的开发最好还是使用Microsoft.Data.SqlClient