IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

ADO.NET Discussion :

remplir un datagridview de la base


Sujet :

ADO.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 13
    Par défaut remplir un datagridview de la base
    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 code
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
     string strRequete = "SELECT MATRICULE_EMP,matricule1,NOM,PRENOM,DATE_ACC,DATE_REPRISE,NBR_JOUR_REPOS FROM EMPLOYE,ACCIDENT WHERE accident.matricule1= employe.matricule_emp and DATE_ACC>='" + date_debut.Text + "' AND DATE_REPRISE<= '" + date_fin.Text + "'ORDER BY DATE_ACC DESC";
                OracleCommand oCommand = new OracleCommand(strRequete, oConnection);
     
                OracleDataReader oReader = oCommand.ExecuteReader();
                OracleDataAdapter dataAdapter = new OracleDataAdapter(strRequete, strConnexion);
     
                //OracleCommandBuilder commandBuilder = new OracleCommandBuilder(dataAdapter);
     
                DataTable table = new DataTable();
                try
                    {
                dataAdapter.Fill(table);
                    }
                catch(Exception ex)
                {
                    MessageBox.Show("Erreur d'extraction des données", "Lecture des données"); 
                }
    //dataGridView1.DataSource =table;
                //dataGridView1.Columns[0].HeaderText = "Matricule";
                //dataGridView1.Columns[0].Width = 70;
                //dataGridView1.Columns[1].HeaderText = "Nom";
                //dataGridView1.Columns[1].Width = 100;
                //dataGridView1.Columns[2].HeaderText = "Prénom";
                //dataGridView1.Columns[2].Width = 100;
                //dataGridView1.Columns[3].HeaderText = "Date Accident";
                //dataGridView1.Columns[3].Width = 120;
                //dataGridView1.Columns[4].HeaderText = "Date Retour";
                //dataGridView1.Columns[4].Width = 120;
                //dataGridView1.Columns[5].HeaderText = "Durée Repos (jours)";
                //dataGridView1.Columns[5].Width = 60;
    je ne sais pas ou est le problème!!!!!

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Tu remplis une DataTable, mais à aucun moment tu ne fais le lien avec ton DataGridView...

    Il suffit de rajouter ça après le Fill :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dataGridView1.DataSource = table;

  3. #3
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 13
    Par défaut erreur
    ce message d'erreur apparait

    ORA-01843: not a valid month

  4. #4
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Le format de date dans ta requête doit être incorrect...

    Evite de mettre les valeurs en dur dans ta requête, utilise plutôt des requêtes paramétrées:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    string strRequete = "SELECT MATRICULE_EMP,matricule1,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));
    EDIT: la question n'a rien à voir avec Linq, je déplace...

  5. #5
    Membre émérite Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Par défaut
    Bonjour,
    Je ne connais pas du tout oracle, mais il y a plusieurs problème dans le code.
    Tout d'abord, on met des usings autour de tout objet disposable, c'est le cas des connexions, des commandes, des adapters, etc...
    Ensuite, la requête utilise une concaténation de chaine plutôt que les paramètres (pourtant ajoutés plus loin).
    Enfin, il n'y a aucune vérification des valeurs des paramètres. Si vous ne remplissez pas un des textbox par exemple, vous vous retrouvez avec une chaine vide typée string, le SQL résultant sera donc DATE_ACC>=''
    De plus, vu qu'il doit y avoir utilisation des paramètres, il faut les utiliser correctement :
    Code sql" : Sélectionner tout - Visualiser dans une fenêtre à part
    ... DATE_ACC >= :date_debut AND ...
    Pas de guillemet autour du paramètres, ils seront placés automatiquement si le type de la valeur l'exige.

  6. #6
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par ctxnop Voir le message
    Pas de guillemet autour du paramètres, ils seront placés automatiquement si le type de la valeur l'exige.
    Non, il ne seront pas placés du tout... la valeur sera utilisée directement, sans jamais être formatée pour être inclue dans la requête

  7. #7
    Membre émérite Avatar de ctxnop
    Homme Profil pro
    Développeur informatique
    Inscrit en
    Juillet 2007
    Messages
    858
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Morbihan (Bretagne)

    Informations professionnelles :
    Activité : Développeur informatique
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Juillet 2007
    Messages : 858
    Par défaut
    Tiens étrange, quand j'avais répondu j'étais la seule réponse, je vais manger et quand je revient y'a tout un dialogue entre les deux ...

    Je sais bien que la requête est pas re-formatée pour y effectuer un remplacement des paramètres par leurs valeurs toussa toussa. C'est juste que je trouve ca plus simple a comprendre de dire ca, plutôt que de dire qu'il faut omettre les délimiteurs de valeurs parce que le serveur va recevoir directement la valeur. La plupart des gens a qui j'ai tenté d'expliquer ca captaient que dalle à l'histoire, alors qu'en leurs disant que le paramètre va mettre tout seul les guillemet si ils sont nécessaires, bah la ils comprennent directe.

  8. #8
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 44
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par ctxnop Voir le message
    Je sais bien que la requête est pas re-formatée pour y effectuer un remplacement des paramètres par leurs valeurs toussa toussa. C'est juste que je trouve ca plus simple a comprendre de dire ca, plutôt que de dire qu'il faut omettre les délimiteurs de valeurs parce que le serveur va recevoir directement la valeur. La plupart des gens a qui j'ai tenté d'expliquer ca captaient que dalle à l'histoire, alors qu'en leurs disant que le paramètre va mettre tout seul les guillemet si ils sont nécessaires, bah la ils comprennent directe.
    Ouais, je vois ce que tu veux dire... mais je préfère toujours donner une explication qui soit techniquement correcte même si c'est plus compliqué à comprendre

  9. #9
    Membre averti
    Femme Profil pro
    Étudiant
    Inscrit en
    Mars 2011
    Messages
    13
    Détails du profil
    Informations personnelles :
    Sexe : Femme
    Localisation : Tunisie

    Informations professionnelles :
    Activité : Étudiant
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2011
    Messages : 13
    Par défaut erreur
    j'ai essayé tout vos conseil mais sa n'a pas marché il y a surement quelque chose qui ne vas pas
    une autre erreur apparait
    ORA-22806: not an object or REF
    merci pour vos aide et dsl pour le dérangement

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Remplir un DataGridView avec le contenu d'un fichier excel
    Par belmansour tidjani dans le forum Windows Forms
    Réponses: 7
    Dernier message: 05/06/2018, 14h08
  2. [c#] Remplir un DataGridView avec plusieurs DataTable
    Par macfred dans le forum Windows Forms
    Réponses: 2
    Dernier message: 23/02/2010, 11h02
  3. Remplir un ArrayList avec une base de données
    Par mout551 dans le forum ASP.NET
    Réponses: 10
    Dernier message: 31/07/2007, 15h43
  4. Comment remplir une liste d'une base Access
    Par Igmar dans le forum VB.NET
    Réponses: 11
    Dernier message: 20/06/2007, 17h44
  5. [WinForms][2.0] Remplir un DataGridView
    Par SoGood dans le forum Général Dotnet
    Réponses: 3
    Dernier message: 04/12/2006, 13h46

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo