Pb requete SQL sur une base Oracle

atmeitsatme Messages postés 58 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 15 novembre 2006 - 19 avril 2006 à 17:05
atmeitsatme Messages postés 58 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 15 novembre 2006 - 24 avril 2006 à 09:08
Bonjour,

J'ais un web servcice, qui se connecte à une base données Oracle via OleDb.

Voici une de mes web methodes :

OleDbDataAdapter monAdapter = new OleDbDataAdapter();
DataSet monDataset = new DataSet();
String req_sql;
OleDbCommand oleDbCmd;


oleDbCmd = oconnexion.CreateCommand();


req_sql = "SELECT NOM, QTEBARRE"
+ ", COUNT(QTEBARRE) AS Nombre FROM STOCK WHERE REFERENCEPROFILE = '" + RefProfile
+ "' and QTEBARRE = '" + Longueur.ToString().Replace(".", ",")
+ "' GROUP BY NOMSTOCK, QTEBARRE";


oleDbCmd.CommandText = req_sql;


monAdapter.SelectCommand = oleDbCmd;
monAdapter.Fill(monDataset, "STOCK");


return monDataset;

Cette méthode retourne un dataSet
Quand j'éxecute cette requete avec sqlplus d'oracle tout marche bien.
Alors que pendant l'appel de ma méthode me génère une erreur :

Erreur : ORA-01722: Nombre non valide
Détails : 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.ExecuteReader(CommandBehavior behavior)
at System.Data.OleDb.OleDbCommand.System.Data.IDbCommand.ExecuteReader(CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.FillInternal(DataSet dataset, DataTable[] datatables, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, Int32 startRecord, Int32 maxRecords, String srcTable, IDbCommand command, CommandBehavior behavior)
at System.Data.Common.DbDataAdapter.Fill(DataSet dataSet, String srcTable)

Je n'arrive pas à comprendre d'ou elle peut lever.

Si quelqu'un peut m'aider ?

3 réponses

t_barbillon Messages postés 341 Date d'inscription mercredi 8 juin 2005 Statut Membre Dernière intervention 10 février 2009 2
20 avril 2006 à 08:39
Salut, il me semble que ça vient de ton champ "Nombre" qui n'est pas interprétable en entier, par contre je vois pas pourquoi.
Juste une petite remarque en passant tu devrais plutôt utiliser String.Format au lieu de concaténer des chaînes, c'est plus lisible.
0
DjAdes Messages postés 38 Date d'inscription vendredi 31 mai 2002 Statut Membre Dernière intervention 6 juillet 2011
23 avril 2006 à 16:15
Bonjour,
Si tu ne travailles qu'avec Oracle, pourquoi ne pas utiliser les classes appropriées à ce SGBD ?

Ces classes se trouvnt dans l'espace de nom OracleClient. Il est livré par défaut avec Visual Studio 2005 mais je pense que tu dois ajouter la référence à ton projet.

Lien MSDN : http://msdn2.microsoft.com/en-US/library/system.data.oracleclient(VS.80).aspx

Seb.
0
atmeitsatme Messages postés 58 Date d'inscription mercredi 28 septembre 2005 Statut Membre Dernière intervention 15 novembre 2006
24 avril 2006 à 09:08
Bonjour,
c'est vrai qu'il existe des objets Oracle,
cependant quand je les utilisais sur mon serveur IIS il générais une erreur.
J'avais lu quelque part qu'il falait utiliser les objets OleDb pour ne plus avoir ce problème. C'est ce que j'ais fait, et résultat je n'ais plus que celui là.
0
Rejoignez-nous