You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

.NET Framework4.6.1迁移至.NET6(LTS)的SqlClient与数据集类问题咨询

.NET Framework 4.6.1 迁移至 .NET 6 解决 System.Data 及 SqlClient 歧义问题

解决 DataSet/DataTable/DataRow 报错问题

.NET 6 中不再默认包含 System.Data 相关的数据集类(DataSet、DataTable 等),需要手动配置:

  • 安装 System.Data.DataSetExtensions NuGet 包(官方 NuGet 源可直接检索到,无需手动下载 nupkg)
  • 在项目级导入命名空间:打开项目属性 → 引用 → 导入,添加 System.Data,无需在每个文件单独写 Imports System.Data

解决 Microsoft.Data.SqlClient 安装及歧义问题

1. 正常安装 Microsoft.Data.SqlClient

若 NuGet 管理器找不到包,先确认是否启用了官方 nuget.org 源,没问题的话直接在 Package Manager Console 执行:

Install-Package Microsoft.Data.SqlClient

若必须手动安装,下载对应版本的 nupkg 文件后,通过 NuGet 管理器的「本地包源」添加安装即可。

2. 消除 SqlCommand 歧义(BC37229 错误)

无需大量重命名代码,推荐两种简便方案:

方案一:项目级命名空间别名覆盖

  • 打开项目属性 → 引用 → 导入
  • 添加别名:Imports SqlClient = Microsoft.Data.SqlClient
  • 移除项目中所有手动添加的 Imports System.Data.SqlClient(若存在)
    这样原有代码里的 SqlClient.SqlConnection、SqlClient.SqlCommand 会自动指向 Microsoft.Data.SqlClient 下的类型,完全不用修改业务代码。

方案二:全局替换命名空间前缀

  • 在每个 VB 文件顶部添加:Imports MSql = Microsoft.Data.SqlClient
  • 使用 IDE 全局替换功能(如 Visual Studio 按 Ctrl+Shift+H),将所有代码中的 SqlClient. 替换为 MSql.
    一次全局替换即可完成,耗时极少,彻底消除歧义。

额外建议

检查项目依赖的其他 NuGet 包,若有依赖 System.Data.SqlClient 的包,尽量升级到支持 Microsoft.Data.SqlClient 的版本,避免冗余引用带来的潜在问题。

内容的提问来源于stack exchange,提问作者steevi2307

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.06 23:05:13