Connection OleDb et Oracle [Résolu]

Signaler
Messages postés
58
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
15 novembre 2006
-
Messages postés
58
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
15 novembre 2006
-
Bonjour,

J'utilise dans un web service un acces à ma base de données Oracle via les objets OleDB.
Mon code :

[WebMethod]
public int test()
{
OleDbConnection Olecnx;
OleDbCommand Olecmd;
int nb;


Olecnx = new OleDbConnection();
Olecnx.ConnectionString = "Provider= OraOLEDB.Oracle ; Data Source=***;User Id=***;Password=***;";
Olecnx.Open();
Olecmd = new OleDbCommand("SELECT COUNT(*) FROM HELP;", Olecnx);
nb= (int)Olecmd.ExecuteScalar();
Olecnx.Close();
return nb;
}


Mon probleme est que lors de l'éxecution de la commande sur le ExecuteScalar() une erreur est généré :
System.Data.OleDb.OleDbException: ORA-00903: Nom de table non valide
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextErrorHandling(OleDbHResult hr)
at System.Data.OleDb.OleDbCommand.ExecuteCommandTextForMultpleResults(tagDBPARAMS dbParams, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommandText(Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteCommand(CommandBehavior behavior, Object& executeResult)
at System.Data.OleDb.OleDbCommand.ExecuteReaderInternal(CommandBehavior behavior, String method)
at System.Data.OleDb.OleDbCommand.ExecuteScalar()

Or ma table existe bien et je suis bien connecter.

Si quelqu'un peut me dire si ma ConnectionString est bien renseingé ou non ?
Merci.

4 réponses

Messages postés
58
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
15 novembre 2006

Merci tu avais bien raison pour le ;
Mais mon caste n'est pas autorisé
Voilà le code qui marche :
[WebMethod]
public int test()
{
OleDbConnection Olecnx;
OleDbCommand Olecmd;
int nb;
Olecnx = new OleDbConnection();
Olecnx.ConnectionString = "Provider= OraOLEDB.Oracle ; Data Source=***;User Id=***;Password=***;";
Olecnx.Open();
Olecmd = new OleDbCommand("SELECT COUNT(*) FROM HELP", Olecnx);
nb= Convert.ToInt32(Olecmd.ExecuteScalar());
Olecnx.Close();
return nb;
}
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
34
commence par retirer le ; à la fin de la requête.

et pourquoi n'utilises-tu pas l'espace de nom OracleClient ?


Sébastien FERRAND (
blog)
[Microsoft MVP Visual C#]
Messages postés
58
Date d'inscription
mercredi 28 septembre 2005
Statut
Membre
Dernière intervention
15 novembre 2006

Via mon web service si j'utilise un Oracle... j'ais une autre erreur :

System.Data.OracleClient.OracleException: ORA-00911: Caractère non valide

at System.Data.OracleClient.OracleConnection.CheckError(OciErrorHandle errorHandle, Int32 rc)
at System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle statementHandle, CommandBehavior behavior, Boolean needRowid, OciRowidDescriptor& rowidDescriptor, ArrayList& resultParameterOrdinals)
at System.Data.OracleClient.OracleCommand.Execute(OciStatementHandle statementHandle, CommandBehavior behavior, ArrayList& resultParameterOrdinals)
at System.Data.OracleClient.OracleCommand.ExecuteReader(CommandBehavior behavior)
at System.Data.OracleClient.OracleCommand.ExecuteReader()

J'ais lus sur un autre forum que pour éviter cette erreur il fallait utiliser les objets OleDb
Messages postés
4936
Date d'inscription
lundi 17 février 2003
Statut
Modérateur
Dernière intervention
14 février 2014
34
le caractère non valide, c'est ton ;


Sébastien FERRAND (
blog)
[Microsoft MVP Visual C#]