J'apprécierais tout conseil pour résoudre ce problème.
Je ne suis pas un développeur pro mais un "amateur" qui a "hérité" d'un travail de reportage (grâce à mon intérêt pour la programmation - exemple classique de 'jamais volontaire'!). J'essaie d'accéder à une base de données Oracle 10g à partir de C#.
Pour garder les choses aussi simples que possible, j'ai un formulaire WPF avec un seul bouton. Dans l'événement de clic du bouton, j'ai le code suivant (qui, soit dit en passant a bien fonctionné dans un programme antérieur mis en place sur un autre PC) -Accès Oracle à partir du programme C#
using System.Data;
using System.Data.OracleClient;
...
string oraStr1 = "Data Source=(DESCRIPTION=(ADDRESS_LIST =(ADDRESS=(PROTOCOL=TCP)(HOST=myHost)(PORT=myPort)))(CONNECT_DATA=(SERVICE_NAME=myDB)));Password=myPassword;User ID=myUser;";
DataTable oraTable = new DataTable();
string queryString = "Select surname,forenames from person table where surname = 'Smith'";
using (OracleConnection oraConnect = new OracleConnection(oraStr1))
{
try
{
OracleCommand OraCmd = new OracleCommand(queryString, oraConnect);
oraConnect.Open();
OracleDataAdapter OraAdapter = new OracleDataAdapter();
OraAdapter.SelectCommand = OraCmd;
OraAdapter.Fill(oraTable);
}
finally
{
oraConnect.Close();
}
maintenant ... la L'application (C# Express Edition) s'exécute dans une machine virtuelle sur un serveur distant. Mon partager sur cette machine virtuelle avait également installé Oracle Database 10g Client Release 2 (10.2.0.1.0).
En outre, j'ai installé les composants Oracle Data Access par le département informatique. Lorsque vous exécutez ODBCAD32 dans la machine virtuelle, aucun pilote Oracle n'est répertorié dans l'onglet Pilotes.
Je crois que le pilote installé a échoué et cela empêche mon programme d'initier toute connexion. Cependant, je n'ai aucune preuve et me demandais si les savants ici pourraient conseiller d'en obtenir ...?
Les premières lignes du message d'erreur IDE lecture -
System.Exception was unhandled
Message="OCIEnvCreate failed with return code -1 but error message text was not available."
Source="System.Data.OracleClient"
StackTrace:
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()
Désolé d'être si longue haleine, mais comme vous pouvez le voir, ce set-up est assez complexe ... :)
Je ne suis pas qualifié pour dire à IT leur travail, mais apprécierait conseils que je pourrais transmettre?