Fehler beim Versuch, eine Verbindung zur Oracle 10g-Datenbank über das C # -Programm mit minimaler Setup-Konfiguration herzustellen

8

Ich erhalte einen Fehler, wenn ich versuche, von einer C # 2008 Express Edition-Anwendung, die ich gerade entwickle, eine Verbindung zu einer entfernten Oracle 10g-Datenbank herzustellen. Ich versuche, einen minimalistischen, nicht aufdringlichen Ansatz für die Entwicklung im Hinblick auf die ClickOnce-Bereitstellung auf Benutzerarbeitsstationen zu verwenden.

In Bezug auf die oben genannten habe ich die folgenden Dokumente untersucht (unter anderem ..) -

Was ist die minimale Einrichtung, die zum Bereitstellen einer .NET-Anwendung mit Oracle-Client 11 erforderlich ist?

Ссылка

Ссылка

Ссылка

Verbinden Sie sich mit Oracle mit Odp .net und das OCI von C #

Angesichts des Fehlers, den ich erlebt habe, habe ich eine einfache Test-App erstellt. bestehend aus einer einzelnen (wpf) Seite mit einem Knopf. Im Click-Event der Schaltfläche versuche ich eine Verbindung zu einer Oracle-Datenbank herzustellen -

%Vor%

Nach den Informationen in den obigen Artikeln habe ich sichergestellt, dass die folgenden DLLs in meinem "bin" -Ordner sind -

• oci.dll
• ociw32.dll
• orannzbb10.dll
• oraocci10.dll
• oraociicus.dll
• msvcr71.dll

(der letzte Name in Verzweiflung ...) und haben auf 'Oracle.DataAccess.dll' verwiesen.

Die Fehlermeldung (bei 'catch (OracleException dbEx)') lautet -

%Vor%

Zusätzlich wird Folgendes berichtet -

%Vor%

Ich nehme von der NullReferenceException in der Datenquelle an, dass das Problem in einer der dlls (?) liegt, da ich die OracleConnection oben "neu" mache, bevor ich versuche, darauf zu verweisen.

Darüber hinaus springt die Codeausführung die 'catch (NullReferenceException nullExcept)' und geht direkt zum OracleException catch.

Entschuldigen Sie bitte das Weitergehen, aber hoffen Sie, dass das Sinn macht? Jede Hilfe / Beratung geschätzt!

    
steve 22.12.2011, 12:30
quelle

3 Antworten

2

OK, sehr spät, um auf diese Entschuldigung zurückzukommen!

In der Zwischenzeit wurde unsere Datenbank aktualisiert (!) und die DLL-Liste geändert, um -

einzuschließen
  • oraocci11.dll
  • oraociccus11.dll
  • OraOps11w.dll
  • orannzsbb1.dll

von den '10' Versionen, immer noch ohne Erfolg, ich bearbeitet App.xaml (nach einer ausführlichen Suche hier und im Internet) mit den folgenden -

%Vor%

Das bindingRedirect hat es geschafft!

Die DLLs scheinen extrem abhängig von kompatiblen Versionsnummern

zu sein

Ich wünschte ich könnte sagen, dass ich wirklich verstanden habe wie das funktioniert, aber es funktioniert und ich habe jetzt funktionierende Verbindungen ...

    
steve 04.12.2013 09:52
quelle
1

Es ist mir passiert.

Nach ein bisschen Voodoo, habe ich diesen Schlüssel aus meiner Registrierung gelöscht: HKEY_CURRENT_USER\Software\ORACLE und alles hat wieder gut funktioniert.

    
Zonko 23.05.2012 08:42
quelle
0

Stellen Sie sicher, dass ODAC ordnungsgemäß eingerichtet ist. Ich würde vorschlagen, TNSNAMES zu verwenden (Sie sollten nicht alle diese Informationen in einer Verbindungszeichenfolge imo haben). Weitere Informationen finden Sie im Abschnitt Setup von TNSNAMES in diesem Dokument (11.2). Siehe auch den unteren Abschnitt für häufige Verbindungsprobleme

Sobald dies erledigt ist, sollte es so einfach sein, wie die Verbindungszeichenfolge in die Einstellungseigenschaft Ihres Projekts einzufügen und zu tun:

%Vor%

In Ihrem Beispiel wurde Ihr oraConnect nicht instanziiert (Sie haben nur "OracleConnection oraConnect"), so dass der "neue OracleConnection" -Teil, der fehlschlägt, zu einer Nullreferenzausnahme führt (wenn ich Ihre Erklärung verstehe, wo es sowieso bricht ). Debugger in VS sollte hier auch helfen;)

BEARBEITEN: Vielleicht möchten Sie eine einfache Testkonsole mit nur einer offenen / schließenden Verbindung einrichten. Dadurch können Sie möglicherweise andere Geräusche als die ordnungsgemäße Einrichtung Ihres ODAC-Setups beseitigen. Etwas wie (ungetestet, nehme tnsnames setup an):

mit ...

%Vor%

Versuchen Sie, das auszuführen und berichten Sie, was von der Konsole kommt.

    
tbone 22.12.2011 13:20
quelle