Meilleur auteur de réponses
extraction de la base vers un datagridview

Question
-
bonjour tous le monde
j'essaye d'afficher une sélection de la base de données dans un datagridview
mais rien ne s'affiche
voici le codestring strRequete = "SELECT MATRICULE_EMP,NOM,PRENOM,DATE_ACC,DATE_REPRISE,NBR_JOUR_REPOS FROM EMPLOYE,ACCIDENT WHERE accident.matricule1= employe.matricule_emp AND DATE_ACC >= :date_debut AND DATE_REPRISE <= :date_fin ORDER BY DATE_ACC DESC"; OracleCommand oCommand = new OracleCommand(strRequete, oConnection); oCommand.Parameters.AddWithValue("date_debut", DateTime.Parse(date_debut.Text)); oCommand.Parameters.AddWithValue("date_fin", DateTime.Parse(date_fin.Text)); OracleDataReader oReader = oCommand.ExecuteReader(); OracleDataAdapter dataAdapter = new OracleDataAdapter(strRequete, strConnexion); OracleCommandBuilder commandBuilder = new OracleCommandBuilder(dataAdapter); DataTable table = new DataTable(); try { dataAdapter.Fill(table); dataGridView1.DataSource = table; } catch(Exception ex) { MessageBox.Show("Erreur d'extraction des données", "Lecture des données"); }
une erreur apparait
ORA-01008: not all variables bound
aide svp
je me bloque
Réponses
-
Bonjour,
vous devez initialiser votre OracleDataAdapter à partir de l'OracleCommand :
OracleDataAdapter dataAdapter = new OracleDataAdapter(oCommand);
Cordialement- Marqué comme réponse Ciprian Duduiala lundi 9 mai 2011 05:58
-
Bonjour,
Pour être légèrement plus explicite que Nikho, actuellement il n'y a aucun rapport entre dataAdapter et oCommand. dataAdapter utilise simplement une chaine de caractères mais n'a aucune idée de comment alimenter les paramètres qui y sont inscrits d'où l'erreur. Le problème sera résolu si dataAdapter est initialisé en utilisant oCommand.
Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".- Marqué comme réponse Ciprian Duduiala lundi 9 mai 2011 05:58
Toutes les réponses
-
Bonjour,
Vous pouvez essayer de supprimer l'appel suivant : OracleDataReader oReader = oCommand.ExecuteReader()
Il ne semble pas utile car vous utilisez un DataAdpater pour alimenter une datatable.
Vous pouvez également supprimer OracleCommandBuilder commandBuilder = new OracleCommandBuilder(dataAdapter);
si vous ne faites pas de mise à jour.
Sinon a quelle ligne avez vous l'erreur ?
Par ailleurs si cela fonctionne penser à utiliser une syntaxe du type using ( ) pour libérer vous ressources sur les OracleCommand et OracleDataAdapter
using(OracleDataAdapter dataAdapter = new OracleDataAdapter(strRequete, strConnexion) ) { ... }
-
bonjour
merci de m'avoir répondre , j'ai suivi vos conseil mais toujours la même erreur
enfaite l'exécution se fait normalement!
mais toujours l'exception s'affiche
et l'erreur ORA-01008: not all variables bound s'affiche sur cette ligne catch(Exception ex)
cordialement
-
Bonjour,
vous devez initialiser votre OracleDataAdapter à partir de l'OracleCommand :
OracleDataAdapter dataAdapter = new OracleDataAdapter(oCommand);
Cordialement- Marqué comme réponse Ciprian Duduiala lundi 9 mai 2011 05:58
-
Bonjour,
Pour être légèrement plus explicite que Nikho, actuellement il n'y a aucun rapport entre dataAdapter et oCommand. dataAdapter utilise simplement une chaine de caractères mais n'a aucune idée de comment alimenter les paramètres qui y sont inscrits d'où l'erreur. Le problème sera résolu si dataAdapter est initialisé en utilisant oCommand.
Please always mark whatever response solved your issue so that the thread is properly marked as "Answered".- Marqué comme réponse Ciprian Duduiala lundi 9 mai 2011 05:58
-
Bonjour, Boudour,
Est-ce que les dernières explications de Nikho et Patrice vous ont aidé à résoudre votre problème ? Merci pour tenir la communauté informée sur la suite de vos démarches.
Cordialement,
Cipri
Ciprian DUDUIALA, MSFT  
•Nous vous prions de considérer que dans le cadre de ce forum on n’offre pas de support technique et aucune garantie de la part de Microsoft ne peut être offerte.