如何在Visual Studio 2019和.NET Core 3.0中使用ODBC连接?

时间:2019-09-30 15:25:25

标签: c# odbc .net-core-3.0

我使用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中包含的所有其他类都将丢失。

1 个答案:

答案 0 :(得分:0)

Microsoft.Windows.Compatibility Pack中包含ODBC和OleDb函数。如果您是在NuGet的帮助下下载的,则会找到这些类(已针对.NET Core 3.1进行了测试)。