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

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  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
    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
    Bon, j'ai un peu plus de temps (corrigeons l'existant)
    Citation Envoyé par rv26t Voir le message
    Conseil : Tu devrais faire des jointures sur tes tables pour tout ramener d'un coup. normalement par les id.
    Citation Envoyé par Kropernic Voir le message
    Mais au-delà de ça, je crois que le résultat qu'il produit n'est pas correct car il affiche des décisions et des opérateurs en rapport avec des évènements (car sur la même ligne dans le DGV) alors qu'ils n'ont en fait rien à voir vu que les querys sont indépendantes et sans filtre (en tout cas, d'après le code posté).
    Effectivement pour ce qui concerne les décisions et les opérateurs c'est le premier élément de ces tables qui est systèmatiquement ramené.

    Plutôt que de placer un where sur chacune des autres requête (et utiliser 2 commandes supplémentaires) il est préférable d'utiliser une seule requête avec des jointures entre les tables.

    D'ailleur ta requête
    Citation Envoyé par Crowww Voir le message
    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"
    va très bien il suffit d'utiliser celle-là directement dans ta première commande.

    J'avais vraiment lu en diagonale. Désolé.

    Tu peux mettre des alias pour simplifier comme dans la requête exemple de Kropernic. ("order by 1" doit fonctionner aussi)
    Ce qui te permettra de récupérer toutes les infos d'un coup.
    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.

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, 00h07
  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, 17h10
  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, 13h27
  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, 01h06
  5. Réponses: 7
    Dernier message: 12/10/2004, 16h43

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