我使用 Visual Studio Community 2019 16.3.1。
我想在 .NET Core 3.0 项目中使用 ODBC 连接(示例适用于 .NET Framework 4.x):
using System.Data.Odbc;
using (OdbcConnection connection = new OdbcConnection(odbcConnectionString))
{
using (OdbcCommand command = new OdbcCommand(sql, connection))
{
command.CommandType = System.Data.CommandType.Text;
command.CommandTimeout = 0;
command.Connection.Open();
string value = Convert.ToString(command.ExecuteScalar());
return value;
}
}
我收到错误消息:
错误 CS1069
在命名空间“System.Data.Odbc”中找不到类型名称“OdbcConnection”。此类型已转发到程序集“System.Data.Odbc, Version=4.0.1.0, Culture=neutral, PublicKeyToken=cc7b13ffcd2ddd51” 考虑添加对该程序集的引用。
如果我对 OleDbConnection 类尝试相同的操作,我会收到 OdbcCommand 类的类似消息和类似的错误。
在 Microsoft 文档中,OdbcConnection 类在 System.Data.Odbc 中被描述为 .NET Core 3.0 的一部分。
为什么我必须链接到旧版本?
我怎样才能做出所要求的引用?
附录
我发现.NET Core 3.0 中的 System.Data.Odbc 包只包含两个类(OdbcPermission 和 OdbcPermissionAttribute)。 .NET Framework 4.8 的 System.Data.Odbc 中包含的所有其他类都丢失了。
最佳答案
ODBC 和 OleDb 函数包含在 Microsoft.Windows.Compatibility Pack 中。如果您在 NuGet 的帮助下下载此文件,则会找到这些类(针对 .NET Core 3.1 进行了测试)。
该软件包可以在这里下载:
https://www.nuget.org/packages/Microsoft.Windows.Compatibility
关于c# - 如何在 Visual Studio 2019 和 .NET Core 3.0 中使用 ODBC 连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/58170947/