2010-12-29 6 views
1

Ich muss eine Verbindung zu einem Oracle-Server im Netzwerk mit einer .NET/C# (Winform) -Anwendung. Ich versuche System.Data.OracleClient aber vergeblich zu verwenden.Verbinden mit einem Remote Oracle 11g Server mit OracleClient von .NET 2.0

Hier sind die Details, die ich vielleicht denken kann (dass jemand helfen könnte, diese Frage zu lesen):

Plattform: Visual Studio 2005/.NET 2.0 mit C# auf Windows Vista Home Premium

Library: System.Data.OracleClient

Server: Oracle 11g (befindet sich auf dem gleichen LAN)

Bitte beachten sie, dass ich nicht haben Oracle lokal installiert und ich habe jede Diskussionsforum möglich Hilfe gejagt - aber die meisten von ihnen als Sum lokale Oracle-Installation!

Hier ist meine Verbindungszeichenfolge:

"User Id=TSUSER;Password=ts12TS;Data Source=(DESCRIPTION=(ADDRESS=(PROTOCOL=TCP)(HOST=MyServerIP)(PORT=1521))(CONNECT_DATA=(SERVICE_NAME=ORCL)));"

Und ich bekomme diese Fehlermeldung:

OCIEnvCreate failed with return code -1 but error message text was not available. 

Stapelüberwachung:

at System.Data.OracleClient.OciHandle..ctor(OciHandle parentHandle, HTYPE handleType, MODE ocimode, HANDLEFLAG handleflags) at System.Data.OracleClient.OracleInternalConnection.OpenOnLocalTransaction(String userName, String password, String serverName, Boolean integratedSecurity, Boolean unicode, Boolean omitOracleConnectionName) at System.Data.OracleClient.OracleInternalConnection..ctor(OracleConnectionString connectionOptions) at System.Data.OracleClient.OracleConnectionFactory.CreateConnection(DbConnectionOptions options, Object poolGroupProviderInfo, DbConnectionPool pool, DbConnection owningObject) at System.Data.ProviderBase.DbConnectionFactory.CreatePooledConnection(DbConnection owningConnection, DbConnectionPool pool, DbConnectionOptions options) at System.Data.ProviderBase.DbConnectionPool.CreateObject(DbConnection owningObject) at System.Data.ProviderBase.DbConnectionPool.UserCreateRequest(DbConnection owningObject) at System.Data.ProviderBase.DbConnectionPool.GetConnection(DbConnection owningObject) at System.Data.ProviderBase.DbConnectionFactory.GetConnection(DbConnection owningConnection) at System.Data.ProviderBase.DbConnectionClosed.OpenConnection(DbConnection outerConnection, DbConnectionFactory connectionFactory) at System.Data.OracleClient.OracleConnection.Open() at DGKit.Util.DataUtil.Generate() in D:\SVNRoot\sandbox\DGDev\Util\DataUtil.cs:line 68

Antwort

0

arbeiten seit 2 Jahren auf einer ASP.NET 4.0-Anwendung, die auf Oracle verbindet, muss ich noch sagen, dass ich es hasse :-)

Die Oracle .NET-Treiber sind nur schrecklich fehlerhaft. Nach einigen verschiedenen Versionen (x86, x84, beta, stabil, etc.) habe ich endlich eine Lösung gefunden, die funktioniert.

Ich habe auch festgestellt, dass der Oracle-Anbieter, der mit .NET ausgeliefert wird, für mich nicht verwendbar war, so dass nur die .NET-Treiber/Bibliotheken direkt von der Oracle-Site funktionierten.

Außerdem, wenn SQL Developer (die Java-Anwendung) erfolgreich ausgeführt wurde, war es auf keinen Fall ein Indikator, ob die .NET-Sachen auch funktionieren. Es scheint, dass sie völlig unabhängig sind.

+0

Zusätzlich zu OracleClient von Microsoft (von dem ich glaube, dass Oracle 11g nicht unterstützt), habe ich auch mit MSDAORA und Odbc/Oledb versucht - es hat nicht funktioniert. Ich habe auch ODP.NET (ODAC 11.2) von Oracle Website heruntergeladen. Die Dokumentation von ODP.NET sagt mir, dass ich eine lokale Oracle Installation haben muss. Gibt es eine Möglichkeit, eine Verbindung zu einem Remote-Oracle-Server (im LAN natürlich) mit .NET/C# herzustellen? –

+0

Was ist die Lösung, die Sie gefunden haben, die funktioniert ?! –

+0

Ich endete mit einem ODP.NET Beta-Treiber für 32-Bit (Version 2.112.1.1) "Oracle.DataAccess.dll". Das funktioniert für _me_, aber ich bezweifle, dass es 1: 1 für dich arbeiten wird. Probieren Sie einfach verschiedene Versionen aus, bis alles wie erwartet funktioniert. –

0

Haben Sie die Oracle-Client-Software installiert? Können Sie eine Verbindung mit SQL + auf dem Clientcomputer oder mit dem Server-Explorer herstellen?

+0

Ich habe SQL + auf dem lokalen Computer nicht installiert. Stattdessen habe ich Navicat Lite, mit dem ich in der Lage bin, eine Verbindung mit dem Oracle-Server –

+0

Ich vermute, dass das Ihr Problem ist. Die MS- und Oracle-Datenprovider erfordern die Installation der Oracle-Clientsoftware. – Pughjl