2017-04-06 13 views
0

.netコアからSybaseデータベースに接続しようとしていますが、適切なライブラリが見つかりません。誰かがSybaseに接続するライブラリを提案できますか?.netコアからSybaseデータベースに接続する方法

+0

Sybase自体からのニュースはありません。サードパーティのベンダーをチェックする必要があるかもしれません。 –

答えて

0

SybaseクライアントまたはSybase SDK for Developersに付属のODBCドライバを使用できますか?

+0

いくつか例を挙げてください。どうすれば実装できますか? – MMG

+0

私は.netコアを知りません。 .NETコアでODBCを使用できることがわかっている場合は、Windows用のSybaseクライアントまたはASE開発者用のSDK(sap.comで利用可能)をインストールできます。 Windowsマシンにインストールすると、Windowsで「ODBCデータソース管理者」を開き、Sybase ASEデータベースへの接続ソースを定義します。 https://archive.sap.com/discussions/thread/3565945 – Vince

+0

Linuxサーバでアプリケーションを実行する必要があります。あなたはLinuxサーバーのODBCについて考えていますか? – MMG

2

私のテストにはDapperとMSA.NetCore.ODBCを使用しました.Net Core 2.0プロジェクト。

using System.Collections.Generic; 
using System.Data; 
using System.Data.Odbc; 
using Dapper; 

... 
public IEnumerable<Book> GetBooks() 
{ 
    using (IDbConnection dbConnection = new OdbcConnection("{your_db_connection}")) 
    { 
     IEnumerable<Book> books = dbConnection.Query<Book>("select * from books"); 

     return books; 
    } 
} 
+0

何らかの理由で、行数が正しい(明らかに接続が正常です)が、すべての列がnullを返します。何か案が? – Zerubbabel

+1

MSA.NetCore.ODBCを使用するとsybaseに接続するのに問題はありませんが、行数が正しい間に何らかの形でDapperによって返される列はすべてnullです。私はSystem.Data.Odbcを使用して終了しました。これについては、下記のNicholas Sizerの回答を参照してください。この回答を上乗せしてはならない。 – Zerubbabel

2

は、.NETコアにASEデータベースへの接続のオプションのカップルを持っている:

  1. は、Sybaseデータベース用のODBCデータソースを設定し、nuget上System.Data.Odbc名前空間/パッケージを使用します。このパッケージは現在、プレリリース版であり、対象は.net core 2.0+です。
    • 2.0または2.1にアップグレードできない場合、このオプションは実行できません。
    • しばらく私はこのパッケージを使用しようとしましたが、プロシージャコールから戻り値を取得する際に問題がありました。また、名前付きパラメータのサポートの欠如は非常に迷惑でした。
  2. ヌゲットのAdoNetCore.AseClient名前空間/パッケージを使用してください。
    • 私はODBCを使用して、そしてこれは.net core 1.01.12.0(と、それが解放される2.1)、およびframework 4.6をサポートすることを目的と何ら代わり
    • を見ないで私の不満にこの原因を書き始めました。 4.6のサポートの理由は、ドロップインの代替品になるためです。
    • ソース/ドキュメントを読んで、適切かどうかを調べるには、available on githubです。一日の終わりに

、両方のパッケージは、ADO.NETインタフェース(IDbConnectionIDbCommand、等)のそれらの味を実現するので、それらを設定するためのC#コードはかなり似ています:

//System.Data.Odbc style 
using(var connection = new OdbcConnection(...)) 
using(var commmand = connection.CreateCommand()) 
{ 
    connection.Open(); 
    //command stuff, note: named parameters unsupported 
} 

//AdoNetCore.AseClient style 
using(var connection = new AseConnection(...)) 
using(var commmand = connection.CreateCommand()) 
{ 
    connection.Open(); 
    //command stuff 
} 
+1

これが答えになるはずです – Zerubbabel

関連する問題