アプリ版:「スタンプのみでお礼する」機能のリリースについて

Visual Studio2010で、
C#、Windowsアプリケーションで、
Oracleに接続したいと考えています。

-------------------------------

private void button1_Click(object sender, EventArgs e)
{
string constr = "User Id=scott;Password=tiger;data source=orcl";

OracleConnection con = new OracleConnection(constr);
con.Open();

 MessageBox.Show("接続に成功しました");
}
-------------------------------
■環境
・OS・・Windows7(64bit)
・Visual Studio2010 Express Edition
・Oracle11g(お試し版)

・グローバル・データベース名:orcl
・データベース・パスワード:manager

-------------------------------------
現状、デバッグ実行すると、
con.Open();

で、「OracleExceptionはハンドルされませんでした。
ORA-12154:TNS:指定された接続識別子を解決できませんでした。」
と表示されてしまいます。

(sqlplusで、
ID・・scott
PASS・・tiger
で接続は出来ています。)

【サービス】
・OracleJobSchedulerXE・・・開始(自動)
・OracleMTSRecoveryService・・・開始(自動)

・OracleServiceXE・・・開始(自動)
・OracleXEClrAgent・・・開始(自動)

・OracleXETNSListener・・・開始(自動)

***********************************************

色々と試したのですが、
解決に至りません。

ご存知の方、宜しくお願い致します。

A 回答 (2件)

#1です。


OracleConnectionを使うとしてそれが正しいのなら、「Provider=OraOLEDB.Oracle」は不要のようですね。
接続方法は、おそらく、間接的な「Oracle Net Service」経由です。

となると、「tnsname.ora」が怪しいことになります。
「data source=orcl」とされていますが、「orcl」は「tnsname.ora」で「SERVICE_NAME」で定義されていますか。
確認願います。
    • good
    • 1

どのような接続方法でしょうか?。


ODBC、OCI、OleDB等があります。
環境が1台のPCなのでローカルホスト接続なのでしょう。
sqlplusは賢く接続してくれます。
プログラムからの接続はこと細かく指定してやる必要があります。

OLE DB プロバイダ(ORACLE製)では
Provider=OraOLEDB.Oracle;Data Source=<接続文字列>;User Id=<ユーザID>;Password=<パスワード>
OLE DB プロバイダ(Microsoft製)では
Provider=MSDAORA;Data Source=<接続文字列>;User Id=<ユーザID>;Password=<パスワード>
とあります。
正しい接続方法を記述してみてください。

この回答への補足

ご回答ありがとうございます。

OracleConnection con = new OracleConnection();
con.ConnectionString = "Provider=OraOLEDB.Oracle;Data Source=orcl;User Id=scott;Password=tiger;";
con.Open();
---------------------------------------------

上記のようにして、実行したところ、
「'Provider'は無効な接続文字列属性です」とエラーとなりました。

>どのような接続方法でしょうか?。
接続方法は、どのように調べれば解るのでしょうか?
たびたび、申し訳ありません。

以上、宜しくお願い致します。

補足日時:2011/01/26 06:15
    • good
    • 0

お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!