OdbcConnectionを使用していくつかのデータをプルするプログラムをC#で作成しました。
using System.Data.Odbc;
......
OdbcConnection OdbcConn =
new OdbcConnection(Properties.Settings.Default.ConnectionString);
OdbcCommand cmd = new OdbcCommand();
//open connection
if (OdbcConn.State != ConnectionState.Open)
{
OdbcConn.Open();
}
私の設定ファイルには、次のConnectionStringがあります。
Dsn=****;uid=userID;pwd=password
しかし、接続を確立できません。 IBMcorpのiseriesアクセスドライバーをインストールしていますが、MSAccessを試してみると接続できます。助言がありますか?
疑わしい場合(および接続文字列が含まれる場合): http://www.connectionstrings.com/
Windows 64ビットマシンでは、C#コードがx86(32ビット)、x64、または「任意のCPU」でコンパイルされているかどうかを確認してください。 「任意のCPU」としてコンパイルする場合、デフォルトでx64ビットドライバーが選択されることに注意してください。
32ビットドライバーはC:\ windows\SysWOW64\odbcad32.exeにあります。 32ビットドライバはC:\ windows\system32\odbcad32.exeにあります。
まず、前に提供したパスを使用して、ODBCデータソースアドミニストレーターとの接続が機能することを確認します。つまり、DSNを作成し、Turbotが提案したようにテストします。この接続が機能することを確認したら、接続文字列は、作成したDSNを使用することも、DSNフリーの接続文字列を使用することもできます。
クイックリファレンスとして、ODBCドライバーを使用したDSNフリー接続文字列のサンプルを次に示します:
Driver = {Progress OpenEdge 11.3 Driver}; Host = wfdscr11.wf.local; Port = 1234; DB = MyDatabaseName; UID = John; PWD = Doe
この例では、C#コードからProgressデータベースに接続する必要がありました。これは、DSNを指定せずに使用した接続文字列です。以下に、ドライバーの名前が「Progress OpenEdge11.3Driver」であることがわかります。
私はいつもコントロールパネルのデータソース(ODBC)を使用して接続を確認するのが好きです(ウィンドウ環境にいると仮定します)。 ODBCの選択で使用可能なドライブが表示されていることを確認し、手順に従って接続をテストします。
また、上記のように、接続文字列のWebサイトでは、特定のドライバー接続のどのプロパティと形式がわかります。