Oracle instant client mit C# - windows forms-Anwendung
Bin ich auf der Suche für diese, für lange Zeit ,
Ich entwickelte Windows-Forms-Anwendung mit C # zu verbinden Oracle-Datenbank
diese app verwendet, die auf vielen PCs mit windows XP und windows 7
Nach längerer recherche habe ich herausgefunden, dass ich es verwenden müssen OBP.net für oracle-Zugriff, aber problem ist, ich kann nicht installieren Sie oracle-client auf jedem PC, Allerdings fand ich umgehen, in CodePorject Beispielzum download 5-DLL-Dateien zu tun, die gleiche Arbeit
OCI Instant Client Data Shared Library
oraociicus10.dll (Basic-Lite version)
oraociei10.dll (Basic version)
Client Code Library
oci.dll
Security Library
orannzsbb10.dll
OCCI Library
oraocci10.dll
Aber wenn ich release der app ist es dosent eine Verbindung zu Oracle-Datenbank
Bitte um Hilfe wie kann ich meine Windows-Forms-Anwendung verbinden Oracle-Datenbank mit kein oracle-client installiert PC-und wenn dies ist erreichbar durch die oben genannten DLLS wie kann ich das tun ?
EDIT:
DataTable dt = new DataTable();
OracleConnection Oracle_connection = new OracleConnection();
Oracle_connection.ConnectionString = con;
Oracle_connection.Open();
habe den timeout der Verbindung, in Oracle_connection.Open();
im debugging-Modus und ich benutze keine TNSNAMES.ORA als mein connection string wird als
Data Source=(DESCRIPTION = (ADDRESS = (PROTOCOL = TCP)(HOST = 10.20.2.54)(PORT = 1521))(CONNECT_DATA = (SERVER = DEDICATED)(SERVICE_NAME = PRD))) ;User Id=catering;Password=catering;"`
Versucht haben, veröffentlichen Sie den code es funktionierte auf Windows 7-PC, aber nicht unter Windows XP arbeiten
System.TypeInitializationException: The type initializer for 'Oracle.DataAccess.Client.OracleConnection' threw an exception. ---> Oracle.DataAccess.Client.OracleException The provider is not compatible with the version of Oracle client at Oracle.DataAccess.Client.OracleInit.Initialize()
Weiß nicht, wenn es windows Verwandte oder einige DLLs fehlen
- "Es ist keine Verbindung zur Oracle-Datenbank" sind Sie immer eine Ausnahme (welche?) Das CodeProject Beispiel hat einige Tipps, hast du gelesen diese?
- Sie haben eine entsprechende TNSNAMES.ORA-Datei im gleichen Verzeichnis, oder haben Sie die entsprechende Verbindungszeichenfolge?
- Danke für Eure Antworten, Bearbeiten, meine Frage bereits
Du musst angemeldet sein, um einen Kommentar abzugeben.
Es ist auch voll gelungen .net connector aka ODP.NET Managed-Treiber:
Getestet hab ich es auf Windows 8 und Windows XP SP3 mit .NET 4.0 framework installiert - alles funktioniert wie erwartet. Für die Bereitstellung von nur 1 dll benötigt wird (Oracle.ManagedDataAccess.dll) die GEWICHTE 6 MB (im Vergleich mit instant client lite, der war fast 40 MB).
UPDATE: Wahrscheinlich der beste Weg, um die Verwendung von verwalteten oracle-Treiber ist via NuGet (ODP.NET @ nuget)
ODP.net ist pingelig, was mixing-version zahlen. Die Fehlermeldung:
darauf hin, dass seine Abholung die falsche client-DLL version irgendwo. Wenn ich etwas in der Entwicklung mit Oracle und Visual C# 2010 ich habe die ODP.NET Bibliotheken aus:
http://www.oracle.com/technetwork/developer-tools/visual-studio/downloads/index.html
Nahm ich dann die richtige version für die version von Oracle würde ich die Arbeit mit und verwendet diese DLLs in meinem Projekt. Ich bin mir nicht sicher, was die Beschränkungen sind in der Umverteilung obwohl.
Blick auf diesen thread: Der Anbieter ist nicht kompatibel mit der version des Oracle-Clients
DLLs aufgeführt, es hat den job für mich (Alle im gleichen Verzeichnis wie die exe-Datei).