DOBON.NET DOBON.NETプログラミング掲示板過去ログ

C#からのODBCデータベースへのアクセス方法について

環境/言語:[Win7 x64 Pro、VS2008 C#.NET]
分類:[.NET]

久しぶりにC#の案件をやる事になったので、質問です。
単刀直入に言うとADO.NETを使ってDBにODBC接続できません・・・
色々と調べて、システムDSNにデータベースを設定後に

System.Data.Odbc.OdbcConnectionStringBuilder cnStringBuilder =
new System.Data.Odbc.OdbcConnectionStringBuilder();
cnStringBuilder["DSN"] = "sample0000";
cnStringBuilder["UID"] = "Admin";
cnStringBuilder["PWD"] = "";

OdbcConnection conn = new OdbcConnection(cnStringBuilder.toString());
conn.Open();
conn.Close();

というコードを書いて試してみましたが、conn.Open();でエラーになりました。
そのDSN設定されたデータベースをCSEで接続確認とSQLを実行で試してみましたが、問題なく実行されています。何故かC#からの接続が上手くいきません。この問題ですっかりハマっています・・・

C#からODBCデータベースにアクセスに成功した方、正しいやり方を知っている方いらっしゃいましたらどうか教えてください。お願いします。
■No27891に返信(The将軍さんの記事)

コネクション文字列に足りないものがあると思うので、コネクション文字列の内容を確認した方がよいかと思います。
サーバエクスプローラが使えるようなら接続を作ってみるとコネクション文字列の内容がわかるかと思います。
コネクション文字列ですが
最初は
 "DSN=sample0000;UID=Admin;PWD=;"
で試してましたが、試行錯誤し現在は
 DSN=sample0000;PROVIDER=FileMaker ODBC;UID=Admin;SESRVER=192.168.11.2;PRT=2239;OPTION=3
にしたところエラーメッセージが
ERROR [08S01] [FileMaker][FileMaker ODBC] Communication link failure
となりました。

どちらが解答に近いのかわからず困っています・・・
よろしくお願いします。
>  DSN=sample0000;PROVIDER=FileMaker ODBC;UID=Admin;SESRVER=192.168.11.2;PRT=2239;OPTION=3
> にしたところエラーメッセージが
> ERROR [08S01] [FileMaker][FileMaker ODBC] Communication link failure
> となりました。

SERVERをSERSVERとタイプミスしていました・・・
正しいIPに変えたところ、また
 ERROR [28000] [FileMaker][FileMaker] (802): Unable to open file
 ERROR [28000] [FileMaker][FileMaker] (802): Unable to open file

というエラーに戻りました。
この投稿はマルチポストです(?)

●マルチポストされている場所
http://detail.chiebukuro.yahoo.co.jp/qa/question_detail/q1352481318

----------
この掲示板ではマルチポストが禁止されています。詳しくは、「書き込みのマナーについて」をお読みください。

●書き込みのマナーについて
http://dobon.net/vb/bbs/index.html
C#で、MySQLにODBC接続したことがあります。
(MySQL Connector/ODBCを使用)
この時は、データソースにユーザ名、パスワードなどすべて設定して、
OdbcConnection conn = new OdbcConnection("DSN=データソース");
conn.Open();
というようにDSNのみで接続していました。

こうすれば、(プログラムとは別に)データソースからテスト接続して
確認できるので便利です。一度、試してみてはいかがですか?

DOBON.NET | プログラミング道 | プログラミング掲示板