このブログでは、Linux上の.NETからODBC接続を取得する方法について説明します。 .NETは、Linuxプラットフォームで使用可能な任意のEasysoftODBCドライバーで使用できます。このブログで使用しているこのドライバーの例は、Easysoft ODBC-JDBC Gatewayです。これは、ODBCとJDBCの間で変換を行い、.NETからのJavaデータを操作できるようにします。
- まだインストールしていない場合は、Microsoftの指示に従って.NETをインストールしてください。
- .NETマシンのライブラリパスにunixODBC/libフォルダーが含まれていることを確認してください。 Easysoftドライバーディストリビューションに含まれているunixODBCドライバーマネージャーを使用している場合は、
libodbc.so.2
のシンボリックリンクも追加する必要があります。 。例:cd /usr/local/easysoft/unixODBC/lib ln -s libodbc.so.1 libodbc.so.2
- 次に、.NETのODBC部分をインストールします。
dotnet add package System.Data.Odbc --version 4.7.0
- 新しい.NETプログラムを作成します。例:
dotnet new console --output sample1
- Program.csを編集し、次のようなものを使用します。
using System; using System.Data.Odbc; namespace EasysoftODBCJDBCSample { class Program { static void Main(string[] args) { try { OdbcConnection DbConnection = new OdbcConnection("DSN=OJG"); DbConnection.Open(); OdbcCommand DbCommand = DbConnection.CreateCommand(); DbCommand.CommandText = "select * from MyTable"; OdbcDataReader DbReader = DbCommand.ExecuteReader(); while( DbReader.Read()) { for (int i = 0; i < DbReader.FieldCount; i++) { if (DbReader.IsDBNull(i)) { Console.Write("NULL,"); } else { Console.Write(DbReader.GetValue(i).ToString() + ","); } } Console.WriteLine(); } Console.Write("Data Finished"); DbReader.Close(); DbCommand.Dispose(); DbConnection.Close(); } catch (OdbcException ex) { Console.WriteLine(ex.Message); return; } } } }
行内:
OdbcConnection DbConnection = new OdbcConnection("DSN=OJG");
OJG
を置き換えますodbc.ini
で定義されているODBCデータソースの名前 ファイル。 - サンプルを実行するには:
dotnet run --project sample1