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

VB.NET Discussion :

Insertion de données dans un DGV [Débutant]


Sujet :

VB.NET

  1. #1
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 84
    Par défaut Insertion de données dans un DGV
    Bonjour,

    J'ai un petit soucis sur l'insertion de données dans mon DatagridView. J'ai trouvé un exemple en C# sur internet mais je ne sais pas vraiment comment l'interpréter en VB, le voici:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    private void grid_view()
    {
       string s=ConfigurationManager.ConnectionStrings["constr"].ConnectionString;
       string sel = "select * from TableName";
       SqlConnection con = new SqlConnection(s);
       SqlCommand cmd = new SqlCommand(sel, con);
       SqlDataAdapter sda = new SqlDataAdapter(cmd);
       DataSet ds = new DataSet();
       sda.Fill(ds);
       GridView1.DataSource = ds;
       GridView1.DataBind();
    }
    Et voici où j'en suis dans mon 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
    Private Sub dgvMainHiver_CellContentClick(sender As System.Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvMainHiver.CellContentClick
            Dim strConnex As String
            Dim Rqt As String
            strConnex = GetConnexionString()
            Try
                Me.objConnexion = New OracleConnection(strConnex)
                Me.objConnexion.Open()
                ' Requête paramétrée    
                Rqt = "SELECT TO_CHAR(DTE_EVENT,'DD/MM/YYY'),TO_CHAR(DTE_EVENT,'HH24:MI:SS'), EVENEMENT.LIBELLE, DECISION.LIBELLE, OPERATEUR.LIBELLE FROM EVENEMENT, DECISION, OPERATEUR WHERE EVENEMENT.ID_DECISION = DECISION.ID_DECISION AND EVENEMENT.ID_OPERATEUR = OPERATEUR.ID_OPERATEUR ORDER BY TO_CHAR(DTE_EVENT,'DD/MM/YYY') ASC"
     
            Catch ex As Exception
                MessageBox.Show(ex.ToString)
            End Try
        End Sub
    Merci de m'aider

  2. #2
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 84
    Par défaut
    J'ai oublié de préciser que je suis avec une BDD Oracle, mais bon je pense pas que cela change bcp la syntaxe

  3. #3
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2013
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 263
    Par défaut
    Bonjour,

    J'ai pas très bien comprit ton code dans le sens de ce que tu souhaite faire car tes pas très clair dans tes explication. Je comprend que tu essaye de réaliser une connexion vers oracle avec des requêtes, etc... et je doute bien que d’après ton titre, tu souhaite sans doute afficher ce qui se trouve dans ta requête directement sur la DGV.

    J'ai plusieurs conseille a te donné :

    De 1), il y a un site sympa "msdn" qui permet d'avoir du code en C# comme en VB. Ce site t'explique les propriétés, les méthodes et des petites exemple de ce que tu souhaite faire par exemple avec un DGV.

    http://msdn.microsoft.com/fr-fr/libr...=VS.80%29.aspx

    De 2), Si j'ai bien compris ce que tu veux faire, si tu veux réellement rajouter des données dans un DGV il faut savoir si tu as placer un DGV sur ta form et comment ta décidé de rajouter tes colonnes (Manuelle via la petite flèche en haut a droite ou dans ton code avec des lignes d'instruction).

    De 3), il existe plusieurs façon de remplir une DGV, mes deux préféré sont insert ou alors Add, la différence est que insert permet de choisir ou tu veux insérer ta nouvelle ligne, attention elle écrase pas mais fait tous décaler.

    Alors voila un exemple de comment je gère avec un DGV de A à Z genre de la déclaration des colonnes jusqu’à l'insertion de tes données :

    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
    Imports System.Windows.Forms
     
    Public Class Form1
        Private c0 As New DataGridViewTextBoxColumn
        Private c1 As New DataGridViewTextBoxColumn
        Private c2 As New DataGridViewTextBoxColumn
        Private Sub Form1_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            DataGridView1.Columns.Add(c0) ' Permet d'ajouter une colonne dans ton DVG, c'est la partie la plus interessante et importante.
            c0.Name = "Time In" ' Pour choisir le nom de ta colonne
            c0.AutoSizeMode = Windows.Forms.DataGridViewAutoSizeColumnMode.None ' Pour autoriser le changement de taille de ta colonne
            c0.Width = 150 ' Pour changer la taille de ta colonne avec la longueur que tu veux !
            c0.DisplayIndex = 0 ' Pour choisir l'index de ta colonne, cad l'ordre de sa place !
     
     
            DataGridView1.Columns.Add(c1)
            c1.Name = "Unit"
            c1.DisplayIndex = 1
     
     
            DataGridView1.Columns.Add(c2)
            c2.Name = "Module/param"
            c2.DisplayIndex = 2
        End Sub
     
        Private Sub Button1_Click(sender As System.Object, e As System.EventArgs) Handles Button1.Click
            DataGridView1.Rows.Insert(0, {"toto", "titi", "tutu"}) 'Tu insert a la ligne 0 ou celle que tu veux en changant le zéro tous ce que tu veux tes colonnes, tu peut aussi remplacer tutu par les données qui se trouve dans ta requetes oracle !
            DataGridView1.Rows.Add({"titi", "toto", "tutu"})
        End Sub
    End Class
    Voila un exemple avec un DVG et un bouton dans ta form sans avoir à les modifier, genre juste tu les poses et le code devrai marcher !!

    PS: Alors juste je m'explique, j'ai déclarer 3 variables au début (c1, c2 et c3) qui sont des colonnes, ensuite j'ai ajouter ses colonnes à ton DGV dans le load lors du chargement de ton form. Ensuite j'ai changé quelques propriétés de tes colonnes comme le nom, la taille etc... mais tous ce que je viens de dire est réalisable via la petite flèche en haut à droite de ton DVG directement dans ta fenêtre graphique. Pour finir, ensuite via un bouton, lorsque j'appuie dessus, il rajoute 2 lignes dans ton DGV avec des message quelconque, tu peut aussi joué avec ton imagination et réaliser tous ce que tu veux par la suite !!

  4. #4
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 84
    Par défaut
    Merci pour tes explication très claires En effet j'ai créer mon DGV sur mon form et j'ai rajouter les colonnes avec la flèches en haut a droite. Pardon si je me suis mal exprimer. En fait ce que je voulais dire c'est que j'ai ma BDD remplit de jeux d'essaie. Je dois récupérer ces données pour les placer dans mon DGV. Mais je ne savais pas comment faire, mais je vais essayer ton DGV et faire les modif nécessaires, je te tiens au courant de l'avancement MERCI

  5. #5
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 84
    Par défaut
    Bon, la création du DGV marche à merveille, mais j'ai juste une petite question sur le remplissage de celui-ci, je ne veux pas le faire via un bouton mais plutôt que les information se charge en même temps que le DGV, du coup faut que je le mette dans le load, mais je ne sais pas comment lui dire de bien placer le résultat de cette requète :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    SELECT TO_CHAR(DTE_EVENT,'DD/MM/YYY'),TO_CHAR(DTE_EVENT,'HH24:MI:SS'), EVENEMENT.LIBELLE, DECISION.LIBELLE, OPERATEUR.LIBELLE FROM EVENEMENT, DECISION, OPERATEUR WHERE EVENEMENT.ID_DECISION = DECISION.ID_DECISION AND EVENEMENT.ID_OPERATEUR = OPERATEUR.ID_OPERATEUR ORDER BY TO_CHAR(DTE_EVENT,'DD/MM/YYY') ASC

  6. #6
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2013
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 263
    Par défaut
    tu peux le faire juste après ta requête genre :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    Private Sub dgvMainHiver_CellContentClick(sender As System.Object, e As System.Windows.Forms.DataGridViewCellEventArgs) Handles dgvMainHiver.CellContentClick
            Dim strConnex As String
            Dim Rqt As String
            strConnex = GetConnexionString()
            Try
                Me.objConnexion = New OracleConnection(strConnex)
                Me.objConnexion.Open()
                ' Requête paramétrée    
                Rqt = "SELECT TO_CHAR(DTE_EVENT,'DD/MM/YYY'),TO_CHAR(DTE_EVENT,'HH24:MI:SS'), EVENEMENT.LIBELLE, DECISION.LIBELLE, OPERATEUR.LIBELLE FROM EVENEMENT, DECISION, OPERATEUR WHERE EVENEMENT.ID_DECISION = DECISION.ID_DECISION AND EVENEMENT.ID_OPERATEUR = OPERATEUR.ID_OPERATEUR ORDER BY TO_CHAR(DTE_EVENT,'DD/MM/YYY') ASC"
     
            Catch ex As Exception
                MessageBox.Show(ex.ToString)
            End Try
        End Sub
    Tu rajoute la ligne d'ajout avec les éléments de ta requête juste après avoir réussi à te connecter à ta BDD oracle et avoir récupéré les info qui t’intéresse :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataGridView1.Rows.Add({blablabla})
    tu peut le faire dans ton Load, il y a pas de souci !!

    PS: l'exemple avec le bouton, c'est juste un exemple juste pour te faire comprendre après tous ce que tu peut imaginé est réalisable, et avec du vb, il y a quasi aucune limite !!

  7. #7
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2013
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 263
    Par défaut
    Ensuite par rapport au "blablabla" qui doit ce trouver dans ta ligne qui permet d'ajouter tes information, il faut déjà savoir combien d'information tu veux rajouter, c'est à dire, combien de colonne. Je suis pas très fan de BDD, j'en ait déjà fait et je comprend bien ta requête mais j'ai du mal a voir ce que ta requête récupére, le nombre de donnée et les types.

    Imaginant que tu veux aller chercher 3 informations dans ta BDD, voila ce que je ferai si j’étais toi :

    Je réalise 3 requêtes (req1, req2 et req3) :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    req1 = "SELECT TO....
    req2 = "SELECT TO....
    req3 = "SELECT TO....
    DataGridView1.Rows.Add({req1,req2,req3})
    Tu peux aussi directement réaliser tes requêtes à l’intérieur de la dernière ligne d'instruction.

    J'espere que ta bien compris sinon j'ai pas détaillé ton SELECT TO car je suis pas fan de BDD et je pense que tu sais déjà exactement ce que tu veux récupérer dans oracle et comment le faire.

    PS: Sans bien sur oublié de déclarer tes variable req avant de mettre des info de dans comme dans ton premier exemple etc....

  8. #8
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 84
    Par défaut
    alors j'ai une petite erreur qui survient

    voila mon 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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    Dim strConnex As String
            Dim Rqt As String
            strConnex = GetConnexionString()
            Try
                Me.objConnexion = New OracleConnection(strConnex)
                Me.objConnexion.Open()
                ' Requête paramétrée    
                Rqt = "SELECT TO_CHAR(DTE_EVENT,'DD/MM/YYY'),TO_CHAR(DTE_EVENT,'HH24:MI:SS'), EVENEMENT.LIBELLE, DECISION.LIBELLE, OPERATEUR.LIBELLE FROM EVENEMENT, DECISION, OPERATEUR WHERE EVENEMENT.ID_DECISION = DECISION.ID_DECISION AND EVENEMENT.ID_OPERATEUR = OPERATEUR.ID_OPERATEUR ORDER BY TO_CHAR(DTE_EVENT,'DD/MM/YYY') ASC"
     
                ' On crée une commande Oracle    
                Using cmd = New OracleCommand()
                    cmd.Connection = Me.objConnexion
                    cmd.CommandText = Rqt
                    cmd.CommandType = CommandType.Text
     
                    ' On exécute la requête    
                    Using dr As OracleDataReader = cmd.ExecuteReader()
                        ' On lit le résultat    
                        dr.Read()
     
                        dgvMainHiver.Rows.Add({"TO_CHAR(DTE_EVENT,'DD/MM/YYY')", "TO_CHAR(DTE_EVENT,'HH24:MI:SS')", "EVENEMENT.LIBELLE", "DECISION.LIBELLE", "OPERATEUR.LIBELLE"})
     
                    End Using
                End Using
     
            Catch ex As Exception
                MessageBox.Show(ex.ToString)
            End Try
     
            dgvMainHiver.Columns.Add(Dte) ' Permet d'ajouter une colonne dans ton DVG, c'est la partie la plus interessante et importante.
            Dte.Name = "Date" ' Pour choisir le nom de ta colonne
            Dte.AutoSizeMode = Windows.Forms.DataGridViewAutoSizeColumnMode.None ' Pour autoriser le changement de taille de ta colonne
            Dte.Width = 150 ' Pour changer la taille de la colonne avec la longueur
            Dte.DisplayIndex = 0 ' Pour choisir l'index de la colonne
     
            dgvMainHiver.Columns.Add(Heure)
            Heure.Name = "Heure"
            Heure.DisplayIndex = 1
     
            dgvMainHiver.Columns.Add(LibEvent)
            LibEvent.Name = "Nature de L'évènement"
            LibEvent.DisplayIndex = 2
     
            dgvMainHiver.Columns.Add(LibDeci)
            LibDeci.Name = "Décision"
            LibDeci.DisplayIndex = 3
     
            dgvMainHiver.Columns.Add(LibOpe)
            LibOpe.Name = "Opérateur"
            LibOpe.DisplayIndex = 4
    L'erreur est à la ligne 82 soit :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dgvMainHiver.Rows.Add({"TO_CHAR(DTE_EVENT,'DD/MM/YYY')", "TO_CHAR(DTE_EVENT,'HH24:MI:SS')", "EVENEMENT.LIBELLE", "DECISION.LIBELLE", "OPERATEUR.LIBELLE"})
    Je dois placer les résultat de ma requête dans des variables?

  9. #9
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2013
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 263
    Par défaut
    ta requête est enfaite un String, ensuite avec une ligne d'instruction, tu lance cette requete directement sur oracle juste apres avoir réaliser ta connection, si tu place des
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "TO_CHAR(DTE_EVENT,'DD/MM/YYY')"
    directement dans
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dgvMainHiver.Rows.Add(...
    c'est automatiquement pour ecrire ta requete dans ton DGV. Normalement en BDD, tu ecris ta requête en String et ensuite tu l’exécute, je vais essayer de retrouvé un exemple que j'ai réaliser avec une BDD SQL-Server mais le principe est le meme de partout !!

  10. #10
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2013
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 263
    Par défaut
    voila un exemple qui n'est pas avec une BDD oracle mais sa marche kifkif, enfaite je me connecte sur ma BDD et j'essaye de récupéré les données qui se trouve dans ma BDD poru les afficher dans un label :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
                Dim Connexion As New SqlConnection("Data Source=.\SQLEXPRESS;AttachDbFilename=C:\Users\tfh\Documents\DataTeste.mdf;Integrated Security=True;Connect Timeout=30;User Instance=True")
                Connexion.Open()
                Dim Requete As String = "SELECT tutu FROM zuzu WHERE toto = 'rho'"
                Dim Commande As New SqlCommand(Requete, Connexion)
                Dim MonReader As SqlDataReader = Commande.ExecuteReader()
                If MonReader.Read() Then
                    Label1.Text = MonReader("tutu").ToString
     
                Else
                    Console.WriteLine("Aucun artiste trouvé")
                    Console.Read()
                End If
     
                Connexion.Close()
    Moi ce que je te conseille de faire est déjà de comprendre comment tu peut récupérer des donnée directement dans ta BDD et essayé de l'afficher dans un simple label, une fois que tu arrivera a le faire, tu aura juste l'info dans ton DGV.

    Essaye de réaliser les choses petit à petit et de bien comprendre chaque étape car la ton problème maintenant viens plus de ta maitrise de la BDD que des DGV.

  11. #11
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 84
    Par défaut
    D'accord, merci de tes conseils

  12. #12
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 84
    Par défaut
    Une dernière petite question, j'arrive enfin à affiché les données de ma première ligne dans mon DGV, cependant je n'arrive pas à afficher les lignes suivantes. Imaginons que j'ai A, B et C dans une table, j'arrive a afficher A si ma première ligne, mais comment luis dire d'afficher B sur la ligne suivante? Sachant que me requête les récupère tout les deux?

  13. #13
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    Bonjour

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
       If MonReader.HasRows Then
           while MonReader.Read
               ' ...
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

  14. #14
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 84
    Par défaut
    ça ne fonctionne pas vraiment :s

    Si cela peut aider voici mon code actuel

    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
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
     
    Private Sub VisualiserHiver_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
            Dim strConnex As String
            Dim Rqt, Rqt2, Rqt3 As String
            strConnex = GetConnexionString()
     
            dgvMainHiver.Columns.Add(Dte) ' Permet d'ajouter une colonne dans le DVG
            Dte.Name = "Date" ' Pour choisir le nom de la colonne
            Dte.AutoSizeMode = Windows.Forms.DataGridViewAutoSizeColumnMode.None ' Pour autoriser le changement de taille de ta colonne
            Dte.Width = 150 ' Pour changer la taille de la colonne avec la longueur
            Dte.DisplayIndex = 0 ' Pour choisir l'index de la colonne
     
            dgvMainHiver.Columns.Add(Heure)
            Heure.Name = "Heure"
            Heure.DisplayIndex = 1
     
            dgvMainHiver.Columns.Add(LibEvent)
            LibEvent.Name = "Nature de L'évènement"
            LibEvent.DisplayIndex = 2
     
            dgvMainHiver.Columns.Add(LibDeci)
            LibDeci.Name = "Décision"
            LibDeci.DisplayIndex = 3
     
            dgvMainHiver.Columns.Add(LibOpe)
            LibOpe.Name = "Opérateur"
            LibOpe.DisplayIndex = 4
     
            Try
                Me.objConnexion = New OracleConnection(strConnex)
                Me.objConnexion.Open()
                ' Requête paramétrée    
                Rqt = "SELECT TO_CHAR(DTE_EVENT,'DD/MM/YYY'),TO_CHAR(DTE_EVENT,'HH24:MI:SS'), LIBELLE FROM EVENEMENT ORDER BY TO_CHAR(DTE_EVENT,'DD/MM/YYY') ASC"
                Rqt2 = "SELECT LIBELLE FROM DECISION"
                Rqt3 = "SELECT LIBELLE FROM OPERATEUR"
     
                ' On crée une commande Oracle    
                Using cmd = New OracleCommand()
                    cmd.Connection = Me.objConnexion
                    cmd.CommandText = Rqt
                    cmd.CommandType = CommandType.Text
     
                    ' On exécute la requête    
                    Using dr As OracleDataReader = cmd.ExecuteReader()
                        ' On lit le résultat    
                        dr.Read()
     
                        ' Récupère les infos et les stocke dans des variables    
                        Dim dte = dr.Item("TO_CHAR(DTE_EVENT,'DD/MM/YYY')")
                        Dim heure = dr.Item("TO_CHAR(DTE_EVENT,'HH24:MI:SS')")
                        Dim LibEvent = dr.Item("LIBELLE")
     
     
     
                        ' On crée une commande Oracle
                        Using cmd2 = New OracleCommand()
                            cmd2.Connection = Me.objConnexion
                            cmd2.CommandText = Rqt2
                            cmd2.CommandType = CommandType.Text
     
                            ' On exécute la requête    
                            Using dr2 As OracleDataReader = cmd2.ExecuteReader()
                                ' On lit le résultat    
                                dr2.Read()
     
                                ' Récupère les infos et les stocke dans des variables
                                Dim LibDeci = dr2.Item("LIBELLE")
     
     
     
                                ' On crée une commande Oracle
                                Using cmd3 = New OracleCommand()
                                    cmd3.Connection = Me.objConnexion
                                    cmd3.CommandText = Rqt3
                                    cmd3.CommandType = CommandType.Text
     
                                    ' On exécute la requête    
                                    Using dr3 As OracleDataReader = cmd3.ExecuteReader()
                                        ' On lit le résultat    
                                        dr3.Read()
     
                                        ' Récupère les infos et les stocke dans des variables
                                        Dim LibOpe = dr3.Item("LIBELLE")
     
                                        If dr.HasRows Then
                                            While dr.Read
                                                dgvMainHiver.Rows.Add({dte, heure, LibEvent, LibDeci, LibOpe})
                                            End While
                                        End If
     
                                    End Using
                                End Using
                            End Using
                        End Using
                    End Using
                End Using
     
            Catch ex As Exception
                MessageBox.Show(ex.ToString)
            End Try
        End Sub

  15. #15
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 84
    Par défaut
    Avec le IF et WHILE, la ligne se répète bien, mais c'est les même données à chaque fois.

  16. #16
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2013
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 263
    Par défaut
    Essaye soit de revoir tes commande à ta base de donnée pour récupérer juste A, B ou C en une fois, pas tous d'un coup et l'afficher directement après dans ta DGV avec 3 Add genre Add({A}), Add({B}) et Add({C}) ou alors décortique un peu ce qui se trouve dans ta variable qui contient tes A, B et C et refait la meme choses, pour ajouter 3 lignes dans une DGV, tu doit avoir 3 lignes d'instruction d'ajout si ta envie de faire simple sinon si tu veux faire plus compliquer et mieux codé, fais comme rv26t ta dit. Normalement, je pense que tu peut directement affiché le contenu d'une BDD dans un DGV mais sa c'est une autre affaire ^^

  17. #17
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 84
    Par défaut
    Visiuellement ça me donne cela
    Images attachées Images attachées  

  18. #18
    Membre confirmé
    Homme Profil pro
    Étudiant
    Inscrit en
    Mai 2013
    Messages
    84
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

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

    Informations forums :
    Inscription : Mai 2013
    Messages : 84
    Par défaut
    Je ne peux pas me permettre de faire des ADD pour chaque lignes car il faut que ce soit automatisé, car la Main Courante sera mise à jour régulièrement. Le IF et le WHILE sont correct pour rajouter les lignes, cependant ils ne parcourent pas l'ensemble de ma requête :s

  19. #19
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Mars 2013
    Messages
    263
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Industrie

    Informations forums :
    Inscription : Mars 2013
    Messages : 263
    Par défaut
    Avec ton code actuel, la ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    dgvMainHiver.Rows.Add({dte, heure, LibEvent, LibDeci, LibOpe})
    est exécuté qu'une seule fois, il faut que tu le met dans une boucle for ou tu le relance autant de fois que ta besoin !!


    Grosse bétise, j'ai pas fait attention à la boucle While ^^

  20. #20
    Modérateur

    Homme Profil pro
    Inscrit en
    Janvier 2007
    Messages
    1 722
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 722
    Par défaut
    Il faut remettre les nouvelles valeurs lues dans les variables sinon, c'est toujours les mêmes.

    Donc un truc dans le genre
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
      If dr.HasRows Then
                                            While dr.Read
         ' Récupère les infos et les stocke dans des variables    
                        dte = dr.Item("TO_CHAR(DTE_EVENT,'DD/MM/YYY')")
                        heure = dr.Item("TO_CHAR(DTE_EVENT,'HH24:MI:SS')")
                        LibEvent = dr.Item("LIBELLE")
    '...
                                                dgvMainHiver.Rows.Add({dte, heure, LibEvent, LibDeci, LibOpe})
    Traductions d'articles :
    La mémoire en .NET - Qu'est-ce qui va où ?
    Architecture DAL de haute performance et DTO ; Version C# : Partie 1,Partie 2,Partie 3 — Version VB.NET : Partie 1,Partie 2,Partie 3
    N'hésitez pas à consulter la FAQ VB.NET, le cours complet de Philippe Lasserre et tous les cours, articles et tutoriels.

+ Répondre à la discussion
Cette discussion est résolue.
Page 1 sur 2 12 DernièreDernière

Discussions similaires

  1. insertion de données dans Base de données Oracle 9
    Par hottnikks_79 dans le forum SQL
    Réponses: 2
    Dernier message: 16/03/2006, 01h07
  2. [MySQL] Problème d'insertion de données dans table d'associations
    Par Yukhaa dans le forum PHP & Base de données
    Réponses: 13
    Dernier message: 07/02/2006, 18h10
  3. [C#] problème avec l'insertion des données dans MySQL
    Par madica dans le forum Accès aux données
    Réponses: 7
    Dernier message: 08/11/2005, 14h27
  4. automatiser l'insertion de données dans une bd
    Par matterazzo dans le forum SQL Procédural
    Réponses: 2
    Dernier message: 24/10/2005, 02h06
  5. Réponses: 7
    Dernier message: 12/10/2004, 17h43

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