我使用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,版本= 4.0.1.0,区域性=中性,PublicKeyToken = cc7b13ffcd2ddd51',请考虑添加对该程序集的引用。
对于OdbcCommand类,我会收到类似的消息;如果对OleDbConnection类进行相同的尝试,则会收到类似的错误。
在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中包含的所有其他类都将丢失。
答案 0 :(得分:0)
Microsoft.Windows.Compatibility Pack中包含ODBC和OleDb函数。如果您是在NuGet的帮助下下载的,则会找到这些类(已针对.NET Core 3.1进行了测试)。