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 :

DataGrid et DataGridView, récupération des champs


Sujet :

VB.NET

  1. #1
    Membre actif Avatar de tssi555
    Analyse système
    Inscrit en
    Juillet 2008
    Messages
    594
    Détails du profil
    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juillet 2008
    Messages : 594
    Points : 295
    Points
    295
    Par défaut DataGrid et DataGridView, récupération des champs
    Salut!

    J'utilise actuellement l'objet DataGrid et je viens de découvrir le DataGridView qui est un objet indépendant offrant plus d'options.

    Avec DataGrid
    je récupère la deuxième colone de la ligne en cours avec la portion de code suivant (que j'affecte à un textbox)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    Dim lignecourante as integer
    lignecourante = DataGrid1.CurrentIndex
     
    Textbox1.text = DataGrid1.Item(lignecourante, 1)
    et je mets la propiriété ReadOnly sur True pour que le DataGrid n'affiche pas la ligne après la dernière avec un étoile permettant d'insérer un nouvel enregistrement.

    Mais avec le DataGridView je ne sais pas comment procéder pour ces deux points essentiels dans mon application?


    Merci d'avance

  2. #2
    Membre averti
    Avatar de Ogotcha
    Inscrit en
    Juillet 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2008
    Messages : 232
    Points : 398
    Points
    398
    Par défaut
    clique sur le petit triangle de ton datagridview en mode designer de ta form et tu as enable editing tu le décoche ça empeche l'édition des donnée ensuite enable adding et enable deleting
    Mon Blog
    FAQs DotNet
    Fonction utile : Recherche

  3. #3
    Membre actif Avatar de tssi555
    Analyse système
    Inscrit en
    Juillet 2008
    Messages
    594
    Détails du profil
    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juillet 2008
    Messages : 594
    Points : 295
    Points
    295
    Par défaut
    Exacte Ogocha, merci pour ta réponse qui a résolu la moitié de ma question.

    Et pour récupéré un champs de la ligne séléctionnée on fait comment?

  4. #4
    Membre averti
    Avatar de Ogotcha
    Inscrit en
    Juillet 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2008
    Messages : 232
    Points : 398
    Points
    398
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim a As String = DataGridView1.SelectedRows.Item(0).ToString
    Ici je fixe la variable "a" égale a la valeur du champ 0 (le premier) de la ligne que j'ai sélectionné tu met ceci dans l'évenement que tu vieux de datagridview ou autre
    Mon Blog
    FAQs DotNet
    Fonction utile : Recherche

  5. #5
    Membre actif Avatar de tssi555
    Analyse système
    Inscrit en
    Juillet 2008
    Messages
    594
    Détails du profil
    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juillet 2008
    Messages : 594
    Points : 295
    Points
    295
    Par défaut
    Je veux récupérer la deuxième colonne de la ligne séléctionné, j'ai remplacé le 0 par 1 et j'ai cette erreur.

    L'index était hors limites. Il ne doit pas être négatif et doit être inférieur à la taille de la collection. Nom du paramètre : index

  6. #6
    Membre averti
    Avatar de Ogotcha
    Inscrit en
    Juillet 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2008
    Messages : 232
    Points : 398
    Points
    398
    Par défaut
    Essai en mettant le nom de la colonne exemple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dim a As String = DataGridView1.SelectedRows.Item("COLONNE1").ToString
    [EDIT]
    Une boucle que j'ai fais qui fonction pour récupérer les différentes valeurs
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    dim a,b,c as string
    For Each dr As DataGridViewRow In DataGridView1.SelectedRows
    a = dr.Cells(0).Value.ToString 'récupère la valeur de la cellule 0
    b = dr.Cells(2).Value.ToString 'récupère la valeur de la cellule 2
    c = dr.Cells(3).Value
    Exit For
    Next
    Mon Blog
    FAQs DotNet
    Fonction utile : Recherche

  7. #7
    Membre actif Avatar de tssi555
    Analyse système
    Inscrit en
    Juillet 2008
    Messages
    594
    Détails du profil
    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juillet 2008
    Messages : 594
    Points : 295
    Points
    295
    Par défaut
    J'ai l'erreur suivante :

    La conversion de la chaîne "acode" en type 'Integer' n'est pas valide.

  8. #8
    Membre averti
    Avatar de Ogotcha
    Inscrit en
    Juillet 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2008
    Messages : 232
    Points : 398
    Points
    398
    Par défaut
    ton type dans ta cellule c'est quoi ? car il faut la correspance entre les deux la variable qui reçoit la valeur de la cellule
    Mon Blog
    FAQs DotNet
    Fonction utile : Recherche

  9. #9
    Membre actif Avatar de tssi555
    Analyse système
    Inscrit en
    Juillet 2008
    Messages
    594
    Détails du profil
    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juillet 2008
    Messages : 594
    Points : 295
    Points
    295
    Par défaut
    Dans ma table acode (enfin mle champs) est de type VARCHAR(50)

  10. #10
    Membre averti
    Avatar de Ogotcha
    Inscrit en
    Juillet 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2008
    Messages : 232
    Points : 398
    Points
    398
    Par défaut
    varchar ok alors en sortie mais ta variable en string et non pas en integer
    Mon Blog
    FAQs DotNet
    Fonction utile : Recherche

  11. #11
    Membre actif Avatar de tssi555
    Analyse système
    Inscrit en
    Juillet 2008
    Messages
    594
    Détails du profil
    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juillet 2008
    Messages : 594
    Points : 295
    Points
    295
    Par défaut
    Je ne comprends pas ce que tu veux dire.

  12. #12
    Membre averti
    Avatar de Ogotcha
    Inscrit en
    Juillet 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2008
    Messages : 232
    Points : 398
    Points
    398
    Par défaut
    Met ton code stp pour récupérer des données de la ligne sélectionnée
    Mon Blog
    FAQs DotNet
    Fonction utile : Recherche

  13. #13
    Membre actif Avatar de tssi555
    Analyse système
    Inscrit en
    Juillet 2008
    Messages
    594
    Détails du profil
    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juillet 2008
    Messages : 594
    Points : 295
    Points
    295
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    Call OpenConnexion()
    Dim cmd As SqlCommand = New SqlCommand("ATACT", cnx)
    cmd.CommandType = CommandType.StoredProcedure
    cmd.Parameters.Add("@CodePiece", SqlDbType.VarChar).Value = DataGridView1.SelectedRows.Item("acode").ToString 
    Dim da As SqlDataAdapter = New SqlDataAdapter(cmd)
    ......

  14. #14
    Membre averti
    Avatar de Ogotcha
    Inscrit en
    Juillet 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2008
    Messages : 232
    Points : 398
    Points
    398
    Par défaut
    pose une variable intérmédiaire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
    Call OpenConnexion()
    Dim cmd As SqlCommand = New SqlCommand("ATACT", cnx)
    cmd.CommandType = CommandType.StoredProcedure
    dim toto as string = DataGridView1.SelectedRows.Item("acode").ToString
    cmd.Parameters.Add("@CodePiece", SqlDbType.VarChar).Value = toto
    Dim da As SqlDataAdapter = New SqlDataAdapter(cmd)
    ......
    ensuite en debuggage met un point d'arret en dessous de la ligne toto et regarde la valeur de toto si elle correspond bien a la valeur que tu souhaite récupérer de la datagridview de la ligne sélectionnée
    Mon Blog
    FAQs DotNet
    Fonction utile : Recherche

  15. #15
    Membre actif Avatar de tssi555
    Analyse système
    Inscrit en
    Juillet 2008
    Messages
    594
    Détails du profil
    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juillet 2008
    Messages : 594
    Points : 295
    Points
    295
    Par défaut
    j'ai Nothing comme valeur de toto pendant le déboguage.

  16. #16
    Membre averti
    Avatar de Ogotcha
    Inscrit en
    Juillet 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2008
    Messages : 232
    Points : 398
    Points
    398
    Par défaut
    Il y a bien des valeur dans datagridview ? le nom de la colonne est bien orthographier Majuscule etc.. une ligne de ta datagridview et bien sélectionnée ?
    Mon Blog
    FAQs DotNet
    Fonction utile : Recherche

  17. #17
    Membre actif Avatar de tssi555
    Analyse système
    Inscrit en
    Juillet 2008
    Messages
    594
    Détails du profil
    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juillet 2008
    Messages : 594
    Points : 295
    Points
    295
    Par défaut
    Oui oui , tout ce que tu viens de dire est bien vérifié et malgré ca, je n'y arrive pas.

  18. #18
    Membre averti
    Avatar de Ogotcha
    Inscrit en
    Juillet 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2008
    Messages : 232
    Points : 398
    Points
    398
    Par défaut
    voilà test ceci :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Dim cell As DataGridViewCell = DataGridView1(e.ColumnIndex, e.RowIndex)
    Mon Blog
    FAQs DotNet
    Fonction utile : Recherche

  19. #19
    Membre actif Avatar de tssi555
    Analyse système
    Inscrit en
    Juillet 2008
    Messages
    594
    Détails du profil
    Informations professionnelles :
    Activité : Analyse système

    Informations forums :
    Inscription : Juillet 2008
    Messages : 594
    Points : 295
    Points
    295
    Par défaut
    'e.columns' n'est pas un membre de System.EventArg (Sachant que j'importe le name space). C'est la nouvelle erreur que j'ai.

  20. #20
    Membre averti
    Avatar de Ogotcha
    Inscrit en
    Juillet 2008
    Messages
    232
    Détails du profil
    Informations personnelles :
    Âge : 38

    Informations forums :
    Inscription : Juillet 2008
    Messages : 232
    Points : 398
    Points
    398
    Par défaut
    Bon de tout façon c'était pas sur mon code précédent test en forçant la récupération d'une valeur en fixant la cellule cible

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    dim test as string
    test = DataGridView1.Item(1, 1).Value.ToString 
    'on récupère la valeur de la cellule qui est sur la ligne 1 dans la colonne 1
    Mon Blog
    FAQs DotNet
    Fonction utile : Recherche

Discussions similaires

  1. Réponses: 6
    Dernier message: 12/01/2007, 16h48
  2. Réponses: 5
    Dernier message: 30/10/2006, 13h03
  3. récupération des champ d'une db afin de crée des alias
    Par Legenyes dans le forum Langage SQL
    Réponses: 1
    Dernier message: 05/07/2006, 11h02
  4. [Tableaux] récupération des champs par $_POST
    Par jeanfrancois dans le forum Langage
    Réponses: 3
    Dernier message: 11/05/2006, 17h22
  5. Récupération des champs d'un form dans un autre
    Par Crazyblinkgirl dans le forum ASP
    Réponses: 10
    Dernier message: 22/06/2004, 10h31

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