.NET 8.0 帐号密码或认证码错误The type initializer for 'System.Data.SqlClient.TdsParser' threw an exception.

这是 .NET 8 的已知问题,不是密码错误,是 NuGet 包用错了。
原因:System.Data.SqlClient 在 .NET Core/.NET 5+ 上已弃用,TdsParser 初始化异常就是这个包在 .NET 8 上的典型报错。

修复方法:换成 Microsoft.Data.SqlClient
第一步: 项目里卸载旧包,装新包
bashdotnet remove package System.Data.SqlClient
dotnet add package Microsoft.Data.SqlClient
第二步: 全局替换命名空间
csharp// 改前
using System.Data.SqlClient;

// 改后
using Microsoft.Data.SqlClient;
类名完全一样(SqlConnection、SqlCommand、SqlDataAdapter……),只换命名空间,代码基本不用改。

连接字符串也有一处要注意:
json"Data Source=.\\JSQL2008"
.\JSQL2008 是 SQL Server 命名实例,.NET 8 下有时需要写完整:
json"Data Source=(local)\\JSQL2008"
// 或者
"Data Source=机器名\\JSQL2008"

 

posted @ 2026-03-23 19:57  懒人境界  阅读(8)  评论(0)    收藏  举报