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データベースの経験もありませんが、このエラーの原因は何か疑問に思っていましたか?アプリケーションを実行すると、エラーが発生しません。しかし、アプリケーションのユーザーインターフェイスのボタンをクリックすると、このエラーが発生します。
エラーをなくすにはどうすればよいですか?また、原因は何ですか?
これは、OracleクライアントDLLバージョン番号がmildly Visual Studioにある参照と異なる場合、およびその参照の[特定のバージョン]プロパティを設定した場合でも発生する可能性があります偽に。
これは、Oracle dll内のエラーです。私の推測では、.NET dllをインストールしましたが、システムにOracleクライアントをインストールしていません。 SQLPlusクライアントソフトウェアを介してOracleに接続できますか?インストールされていない場合は、Oracleクライアントソフトウェアをインストールする必要があります。
プロジェクトのプロパティを変更します。ビルドセクション、Platform:x86
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"/>