[英]OleDbConnection not found while using System.Data.OleDb namespace in code
[英]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
超链接时, 此站点打开(不幸的是,没有提供有关错误的详细信息)。
尝试自己修复错误时,我找到了System.Data.OleDb命名空间文档。 这是我的有趣观察:由DataSetProj.Designer.cs
文件自动生成的代码具有类(假设在命名空间中定义),例如OleDbConnection
或OleDbDataAdapter
。 有趣的是, 这个命名空间提到了这些类,但似乎它们不是命名空间的一部分(尽管这是官方的 MS 文档)。 当我输入任何一个类的文档时,它们都包含在System.Data.Ole.Db
命名空间中。 这很奇怪而且非常不清楚(至少对我来说,初级开发人员)文档。
我尝试切换到.NET 4.8 Framework
,使用ErikEJ
的EF Core Power Tools (不幸的是它不适用于 Access *.mdb
文件)。 我在任何地方都找不到这个问题的答案,尽管似乎很多人都会遇到这样的问题。
我如何使它工作?
我注意到OleDbDataAdapter class 中引用的命名空间System.Data.OleDb
位于System.Data.OleDb.dll
程序集中。 当用谷歌搜索程序集的名称时,我找到了这个链接。 下载并安装程序集后(使用 NuGet Package Manager),错误得到解决。
我希望其他有同样问题的人在访问这篇文章时能解决这个问题。
System.Data.OleDb 不是 .Net 5 的一部分,但可作为 .Net 平台扩展的一部分。 有关 .Net 平台扩展的更多详细信息,请参见下面的链接: Docs.microsoft.com 上的 .NET 平台扩展是什么?
If ok with exclusively targeting Microsoft Windows Platform, you can consider installing the windows compatibility pack which includes the OleDb dll as well (below link) or consider rewriting your code to avoid OleDb (ODCB or ADO maybe?): https://www. nuget.org/packages/Microsoft.Windows.Compatibility
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.