web-dev-qa-db-ja.com

ODBC接続文字列

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を試してみると接続できます。助言がありますか?

8
saiful

疑わしい場合(および接続文字列が含まれる場合): http://www.connectionstrings.com/

13
James Hill

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」であることがわかります。

enter image description here

4
Eric Chhun

私はいつもコントロールパネルのデータソース(ODBC)を使用して接続を確認するのが好きです(ウィンドウ環境にいると仮定します)。 ODBCの選択で使用可能なドライブが表示されていることを確認し、手順に従って接続をテストします。

また、上記のように、接続文字列のWebサイトでは、特定のドライバー接続のどのプロパティと形式がわかります。

0
Turbot