在命名空间 "System.Data.OleDb" 中找不到类型名称 "OleDbDataAdapter"
Type name "OleDbDataAdapter" could not be found in the namespace "System.Data.OleDb"
在 WPF C# (.NET 5.0)
中制作项目时,我想使用数据库中的数据。我有一个 Microsoft Access 文件(2000-2003 兼容版本,*.mdb
),我需要将其用于我的项目。
添加新源后
Add > new Item... > Data > DataSet
并正确指定了数据库(连接测试成功),文件 DataSetProj.xsd
已创建。
但是,当我尝试运行代码时,出现了以下错误:
Error CS1069: The type name 'OleDbDataAdapter' could not be found in the namespace 'System.Data.OleDb'. This type has been forwarded to assembly 'System.Data.OleDb, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' Consider adding a reference to that assembly.
单击 CS1069
超链接时,this 站点打开(不幸的是,没有提供有关错误的具体信息)。
试图自己修复错误,我发现 类 中的任何一个 System.Data.OleDb namespace documentation. Here's my interesting observation: The code automatically generated by DataSetProj.Designer.cs
file had classes (supposedly defined in the namespace), like OleDbConnection
, or OleDbDataAdapter
. Funnily enough, this namespace mentions these classes, but it appears they are not part of the namespace (although this is official MS documentation). When I enter documentation,它们包含在 System.Data.Ole.Db
命名空间中。这是奇怪且超级不清楚(至少对我来说,初级开发人员)的文档。
我尝试切换到 .NET 4.8 Framework
,通过 ErikEJ
使用 EF Core Power Tools(不幸的是,它不适用于 Access *.mdb
文件)。我在任何地方都找不到这个问题的答案,虽然看起来很多人都会有这样的问题。
如何让它发挥作用?
我注意到命名空间 System.Data.OleDb
referenced in OleDbDataAdapter class is located in System.Data.OleDb.dll
Assembly. When googled the name of the assembly, I found this link。下载并安装程序集(使用 NuGet 包管理器)后,错误已解决。
我希望遇到同样问题的其他人在访问此 post 时能够解决问题。
System.Data.OleDb 不是 .Net 5 的一部分,但作为 .Net 平台扩展的一部分提供。有关 .Net 平台扩展的更多详细信息,请参见下文 link:
如果可以专门针对 Microsoft Windows 平台,您可以考虑安装 windows 兼容包,其中也包括 OleDb dll(低于 link)或考虑重写您的代码避免 OleDb(可能是 ODCB 或 ADO?):
https://www.nuget.org/packages/Microsoft.Windows.Compatibility
在 WPF C# (.NET 5.0)
中制作项目时,我想使用数据库中的数据。我有一个 Microsoft Access 文件(2000-2003 兼容版本,*.mdb
),我需要将其用于我的项目。
添加新源后
Add > new Item... > Data > DataSet
并正确指定了数据库(连接测试成功),文件 DataSetProj.xsd
已创建。
但是,当我尝试运行代码时,出现了以下错误:
Error CS1069: The type name 'OleDbDataAdapter' could not be found in the namespace 'System.Data.OleDb'. This type has been forwarded to assembly 'System.Data.OleDb, Version=0.0.0.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51' Consider adding a reference to that assembly.
单击 CS1069
超链接时,this 站点打开(不幸的是,没有提供有关错误的具体信息)。
试图自己修复错误,我发现 类 中的任何一个 System.Data.OleDb namespace documentation. Here's my interesting observation: The code automatically generated by DataSetProj.Designer.cs
file had classes (supposedly defined in the namespace), like OleDbConnection
, or OleDbDataAdapter
. Funnily enough, this namespace mentions these classes, but it appears they are not part of the namespace (although this is official MS documentation). When I enter documentation,它们包含在 System.Data.Ole.Db
命名空间中。这是奇怪且超级不清楚(至少对我来说,初级开发人员)的文档。
我尝试切换到 .NET 4.8 Framework
,通过 ErikEJ
使用 EF Core Power Tools(不幸的是,它不适用于 Access *.mdb
文件)。我在任何地方都找不到这个问题的答案,虽然看起来很多人都会有这样的问题。
如何让它发挥作用?
我注意到命名空间 System.Data.OleDb
referenced in OleDbDataAdapter class is located in System.Data.OleDb.dll
Assembly. When googled the name of the assembly, I found this link。下载并安装程序集(使用 NuGet 包管理器)后,错误已解决。
我希望遇到同样问题的其他人在访问此 post 时能够解决问题。
System.Data.OleDb 不是 .Net 5 的一部分,但作为 .Net 平台扩展的一部分提供。有关 .Net 平台扩展的更多详细信息,请参见下文 link:
如果可以专门针对 Microsoft Windows 平台,您可以考虑安装 windows 兼容包,其中也包括 OleDb dll(低于 link)或考虑重写您的代码避免 OleDb(可能是 ODCB 或 ADO?): https://www.nuget.org/packages/Microsoft.Windows.Compatibility