C# 如何使用ODBC连接.NET Core中的Sybase 17 ASA?

C# 如何使用ODBC连接.NET Core中的Sybase 17 ASA?,c#,asp.net-core,odbc,sybase,sybase-asa,C#,Asp.net Core,Odbc,Sybase,Sybase Asa,我们有一台Sybase 17 ASA服务器,希望使用ODBC驱动程序进行连接。 我们的目标是使用完整的.NET Core 2.1及以上版本,而不是.NET标准或.NET Framework 4.x.1。先决条件 假设您已经在机器上安装了SQLAnywhere 17,包括所需的驱动程序 二,。应用程序设置 创建一个新的.NET核心应用程序,本例中将使用Console。我使用了2.2版。 添加NuGet包System.Data.Odbc 三,。C代码 添加以下名称空间: 使用系统数据; 使用Syst

我们有一台Sybase 17 ASA服务器,希望使用ODBC驱动程序进行连接。 我们的目标是使用完整的.NET Core 2.1及以上版本,而不是.NET标准或.NET Framework 4.x.

1。先决条件

假设您已经在机器上安装了SQLAnywhere 17,包括所需的驱动程序

二,。应用程序设置

创建一个新的.NET核心应用程序,本例中将使用Console。我使用了2.2版。 添加NuGet包System.Data.Odbc 三,。C代码

添加以下名称空间:

使用系统数据; 使用System.Data.Odbc

设置连接字符串:

驱动程序={SQLAnywhere 17};服务器=srv_名称;数据库=数据库名称; Uid=用户;pwd=通过;LINKs=tcpiphost=aaa.bbb.ccc.ddd

检索一些数据以确认其工作:


创建一个链接到IQ的服务器,并执行以下简单操作: 插入remoteserver.database.dbo.table_name,从dbo.table_name中选择*


这就是ASE和IQ之间的数据传输方式。

现在有一个.NET Core 3.1库iAnywhere.data.SQLAnywhere.NETCore

到目前为止,这已经提供了查询数据和使用本机库(而不是ODBC或旧的4.6库)所需的结果


编辑添加,我相信它仍然是仅限Windows的,因此不会打开Unix主机,但这是对使用旧的.NET库的巨大改进。

我需要连接到.NET应用程序中的Sybase server IQ。我的本地电脑上没有安装SQL Anywhere。有哪些选项?@ca9163d9我不知道。我的建议是单独提出一个问题,希望有人能回答
    connection.Open();  
    var cmd = new OdbcCommand("select top 5 * from *table*", connection);  
    using (var reader = cmd.ExecuteReader())  
    {  
      while (reader.Read())    
      {    
        for (var i = 0; i < reader.FieldCount; i++)  
        {      
          Console.WriteLine(reader[i]);  
        }  
      }  
    }