web-dev-qa-db-ja.com

「Oracle.DataAcces.Client.OracleConnection」の型初期化子が例外をスローしました

C#アプリケーションでOracleデータベースに接続しようとしてボタンをクリックしようとすると、次のエラーが表示されます。

「Oracle.DataAcces.Client.OracleConnection」の型初期化子が例外をスローしました

データベースにアクセスするための私のコード:

        static string column;
        static string OracleServer = "Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=something)(Host=something)(PORT=something)) (CONNECT_DATA=(SERVICE_NAME=name)));User Id=something;Password=something;";

        public void read()
        {
            try
            {
                var conn = new OracleConnection(OracleServer);
                conn.Open();
                OracleCommand cmd = new OracleCommand("select * from t1", conn);
                OracleDataReader reader = cmd.ExecuteReader();

                while (reader.Read())
                {
                    var column1 = reader["vermogen"];
                    column = (column1.ToString());
                    listBox1.Items.Add(column);
                }
                conn.Close();
            }
            catch (Exception ex)
            {
                MessageBox.Show(ex.Message);
            }

        }

現在、参照Oracle.DataAccessをコードとして使用しています:using Oracle.DataAccess.Client;

アプリケーションはarcgisアドインアプリケーションであり、フォームアプリケーションに変換し、データベースに接続します。ただし、アドインアプリケーションで機能する必要があります。

私はこのエラーを一度も経験したことがなく、Oracleデータベースの経験もありませんが、このエラーの原因は何か疑問に思っていましたか?アプリケーションを実行すると、エラーが発生しません。しかし、アプリケーションのユーザーインターフェイスのボタンをクリックすると、このエラーが発生します。

エラーをなくすにはどうすればよいですか?また、原因は何ですか?

14
Loko

これは、OracleクライアントDLLバージョン番号がmildly Visual Studioにある参照と異なる場合、およびその参照の[特定のバージョン]プロパティを設定した場合でも発生する可能性があります偽に。

8
Alan Macdonald

これは、Oracle dll内のエラーです。私の推測では、.NET dllをインストールしましたが、システムにOracleクライアントをインストールしていません。 SQLPlusクライアントソフトウェアを介してOracleに接続できますか?インストールされていない場合は、Oracleクライアントソフトウェアをインストールする必要があります。

6
nvoigt

プロジェクトのプロパティを変更します。ビルドセクション、Platform:x86

4
hll gnc

Oracle Clientの管理者権限がないため。これをApp.configファイルに追加します。

<IPermission class="Oracle.DataAccess.Client.OraclePermission,
 Oracle.DataAccess, Version=2.111.7.20, Culture=neutral,
 PublicKeyToken=89b483f429c47342" version= "1" Unrestricted="true"/>
0
Thomas