web-dev-qa-db-fra.com

Le type d'initialiseur pour 'Oracle.DataAcces.Client.OracleConnection' a généré une exception

Lorsque j'essaie de me connecter à une base de données Oracle dans mon application C # et que j'essaie de cliquer sur un bouton, le message d'erreur suivant s'affiche:

Le type d'initialiseur pour 'Oracle.DataAcces.Client.OracleConnection' jeté une exception

Mon code pour accéder à la base de données:

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

        }

Maintenant, j'utilise la référence Oracle.DataAccess et en tant que code: using Oracle.DataAccess.Client;

L'application est une application arcgis add in, que j'ai convertie en application de formulaire et qui se connecte à la base de données. Mais je dois le faire fonctionner dans l'application add in. 

Je n'ai jamais rencontré cette erreur et je ne connais pas les bases de données Oracle. Je me demandais quelle était la cause de cette erreur? Lorsque je lance l'application, je ne reçois aucune erreur. Mais lorsque je clique sur les boutons de l'interface utilisateur de l'application, j'obtiens cette erreur.

Que dois-je faire pour perdre l'erreur et quelle en est la cause?

13
Loko

Cela peut également se produire si le numéro de version de votre client Oracle DLL est légèrement différent de la référence que vous avez dans Visual Studio et même si vous définissez la propriété "Version spécifique" de cette référence sur false.

8
Alan Macdonald

Ceci est une erreur à l'intérieur de la DLL Oracle. Mon hypothèse est que vous avez installé les dll .NET mais n'avez pas installé le client Oracle sur votre système. Pouvez-vous vous connecter à Oracle via le logiciel client SQLPlus? S'il n'est pas installé, vous devez installer le logiciel client Oracle.

6
nvoigt

Changez les propriétés de votre projet . Section de construction, Palatform: x86

4
hll gnc

Puisque vous n'avez pas la permission d'administrateur pour Oracle Client. Ajoutez ceci dans le fichier 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