wake-up-neo.com

Der Typinitialisierer für 'Oracle.DataAcces.Client.OracleConnection' hat eine Ausnahme ausgelöst

Wenn ich versuche, eine Verbindung zu einer Oracle-Datenbank in meiner C # -Anwendung herzustellen und auf eine Schaltfläche zu klicken, erhalte ich folgende Fehlermeldung:

Der Typinitialisierer für 'Oracle.DataAcces.Client.OracleConnection' warf eine Ausnahme

Mein Code für den Zugriff auf die Datenbank:

        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);
            }

        }

Jetzt verwende ich die Referenz Oracle.DataAccess und als Code: using Oracle.DataAccess.Client;

Die Anwendung ist eine arcgis-Anwendung in einer Anwendung, und ich habe sie in eine Formularanwendung konvertiert, und sie stellt eine Verbindung zur Datenbank her. Aber ich muss es in der Add-in-Anwendung funktionieren lassen. 

Ich habe diesen Fehler noch nie erlebt, und ich habe keine Erfahrung mit Oracle-Datenbanken. Ich habe mich gefragt, was diesen Fehler verursacht. Wenn ich die Anwendung starte, erhalte ich keine Fehler. Wenn ich jedoch auf die Schaltflächen der Benutzeroberfläche der Anwendung klicke, erhalte ich diesen Fehler.

Was muss ich tun, um den Fehler zu verlieren und was verursacht ihn?

13
Loko

Dies kann auch vorkommen, wenn die Versionsnummer Ihres Oracle-Clients DLL geringfügig von der Referenz in Visual Studio abweicht und auch wenn Sie die Eigenschaft "Specific Version" der Referenz auf false setzen.

8
Alan Macdonald

Dies ist ein Fehler in der Oracle-DLL. Ich vermute, dass Sie die .NET-DLLs installiert haben, den Oracle-Client jedoch nicht auf Ihrem System installiert haben. Können Sie über die SQLPlus-Clientsoftware eine Verbindung zu Oracle herstellen? Wenn es nicht installiert ist, müssen Sie die Oracle-Clientsoftware installieren.

6
nvoigt

Ändern Sie Ihre Projekteigenschaften . Build-Abschnitt, Palatform: x86

4
hll gnc

Da Sie keine Administratorberechtigung für Oracle Client haben. Fügen Sie dies in App.config-Datei hinzu: 

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