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 :

acceder à un datagridview à partir d'une nouvelle forme


Sujet :

VB.NET

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 51
    Points : 40
    Points
    40
    Par défaut acceder à un datagridview à partir d'une nouvelle forme
    salut

    Je travaille avec vb.net 2005 avec une base sql server en utilisant une connexion ODBC.
    J'ai crée un datagridview dans une forme de mon projet à partir d'une table de ma base.

    Ma tache consiste à ajouter des informations manquantes à une ligne (row) existant de la datagrid à partir d'une nouvelle forme du projet en insérant ces données à partir des textbox.

    Le problème que j'ai rencontré est le fait que je peux acceder seulement à la première ligne du datagrid par contre je veux acceder chaque fois à la ligne séléctionnée de la datagrid à partir de la forme la contenant(la première forme).
    J'ai trouver de la peine aussi lors de la validation des informations ajoutés par les textbox de la 2 ème forme.

    merci de m'aider s'il vous plait

  2. #2
    Membre averti
    Profil pro
    Inscrit en
    Septembre 2009
    Messages
    319
    Détails du profil
    Informations personnelles :
    Âge : 35
    Localisation : France

    Informations forums :
    Inscription : Septembre 2009
    Messages : 319
    Points : 414
    Points
    414
    Par défaut
    Bonjour

    Tu n'as qu'a passer le datagrid en parametre (ByRef) a ta deuxieme forme, tout comme pour ta textbox.

    Comme ca tu fais tes modifications dans la copie du datagrid et quand tu fermes la forme bah l'originale est a jour.

    Nasty

  3. #3
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Citation Envoyé par nahoula1231 Voir le message
    salut
    je travaille avec vb.net 2005 avec une base sql server en utilisant une connexion ODBC
    j'ai crée un datagridviem dans une forme de mon projet à partir d'une table de ma base.
    ma tache consiste à ajouter des informations manquantes à une ligne (row) existant de la datagrid à partir d'une nouvelle forme du projet en insérant ces données à partir des textbox.
    Le problème que j'ai rencontré est le fait que je peux acceder seulement à la première ligne du datagrid par contre je veux acceder chaque fois à la ligne séléctionnée de la datagrid à partir de la forme la contenant(la première forme).
    J'ai trouver de la peine aussi lors de la validation des informations ajoutés par les textbox de la 2 ème forme.
    aidez moi s'il vous plaisez
    Bon alors... Si j'ai bien compris... Arretes moi si je me trompe.

    Tu as ta Form_mere avec un Datagridview (lié a une datatable ?) Contenant les lignes de ta table en Base.

    Tu sélectionne une ligne, et par exemple en cliquant sur un bouton, une Form_Fille apparait ne contenant que des Textbox. Il y a autant de Textboxs que de colonnes.

    L'utilisateur mets a jour les données dans les textbox, puis clique sur un Bouton pour valider les changements.

    Est ce ça ? Il faut préciser exactement ce que tu veux faire, pour t'orienter dans une bonne direction.

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 51
    Points : 40
    Points
    40
    Par défaut
    @mactwist69
    oui c'est ce que je cherche exactement

  5. #5
    Membre régulier
    Inscrit en
    Mai 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mai 2009
    Messages : 99
    Points : 124
    Points
    124
    Par défaut
    Citation Envoyé par mactwist69 Voir le message
    Bon alors... Si j'ai bien compris... Arretes moi si je me trompe.
    C'est dur d'arreter qqun d'écrire sur un forum

    Désolé c'est vendredi, c'est le matin tout ça...

    A première vue je dirais que tu prépare ton form_fille, avec les textbox etc... dedans.

    Dans la fonction d'évènement du clique sur ton bouton il te suffit de faire un truc du 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
    15
    16
     
    '----------------------
    'Fonction de clic sur bouton
    '----------------------
    Form_Fille.show()
     
    '----------------------
    'Fonction OnLoad de ta Form_Fille
    '----------------------
    'exemple
    txt_nom.Text = Form_Parent.DataGridView.Rows(Form_Parent.DataGridView.CurrentRow.Index).Cells("nom").Value.ToString
     
    'plus généralement
    TonTextBox.Text = Form_Parent.DataGridView.Rows(Form_Parent.DataGridView.CurrentRow.Index).Cells(IndexColonneRecerchée).Value.ToString
     
    'répeter l'opération pour chaque TextBox

  6. #6
    Membre émérite Avatar de mactwist69
    Homme Profil pro
    Développement VB.NET
    Inscrit en
    Janvier 2007
    Messages
    1 707
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Saône et Loire (Bourgogne)

    Informations professionnelles :
    Activité : Développement VB.NET
    Secteur : Industrie

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Points : 2 528
    Points
    2 528
    Par défaut
    Citation Envoyé par Sarawyn Voir le message
    C'est dur d'arreter qqun d'écrire sur un forum

    Désolé c'est vendredi, c'est le matin tout ça...
    J'espèrerais bien que quelqu'un note !

    Bon sinon... Comme le conseil notre ami Sarawyn tu peux accéder aux données via le datagridview, en utilisant le current_row index (la ligne qui est surligné).

    Le truc c'est que si le datagridview est attaché a une datatable, au moment de mettre à jour il faudra aller modifier les données dans la datatable.

    Donc ce que je te conseillerai serai de créer ta Form_Fille, et avant de l'afficher, tu lui passe toutes les valeurs de ta ligne (dans des propriétés publique), tu les utilise pour remplir tes textboxs.

    Au moment de mettre a jour, tu cherches la ligne correspondante dans ta datatable (grâce a une colonne clé primaire?) , puis tu mets a jour et ferme la fenêtre fille. Le datagridview se mettra a jour tout seul.

    Si après tu veux également mettre à jour la BDD, tu peux faire au passage une petite requête Update!

    Pause une question si sur une de ces étapes, c'est pas très clair.

  7. #7
    Membre régulier
    Inscrit en
    Mai 2009
    Messages
    99
    Détails du profil
    Informations personnelles :
    Âge : 36

    Informations forums :
    Inscription : Mai 2009
    Messages : 99
    Points : 124
    Points
    124
    Par défaut
    Si ton DataGridView est lié à ta DataTable apr la propriété :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DataGridView.DataSource = DataTable
    Avec le current_row tu dois pouvoir récuperer la ligne, modifier directement la valeur dans ta DataTable et raffraichir l'affichage de ton DataGridView avant d'ouvrir ta forme qui ira piocher les info dans le DataGridView

  8. #8
    Membre du Club
    Profil pro
    Inscrit en
    Juillet 2010
    Messages
    51
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Juillet 2010
    Messages : 51
    Points : 40
    Points
    40
    Par défaut
    je trouve toujours des problèmes lors de la mise à jour de la table
    en fait lorsque je mets
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    forme_parent.ObjetDataAdapter.Update(forme_parent.ObjetDataSet, "la_table")
    le datagridview se mets à jours mais cela ne s'enregistre pas dans la base originale(la base sqlserver)

Discussions similaires

  1. Réponses: 1
    Dernier message: 16/05/2011, 17h11
  2. Réponses: 4
    Dernier message: 14/08/2010, 18h18
  3. Appelé un timer à partir d'une nouvelle form
    Par abbd dans le forum Windows Forms
    Réponses: 19
    Dernier message: 19/03/2008, 13h43
  4. Réponses: 2
    Dernier message: 15/11/2006, 19h57
  5. [C#] problème d'affichage d'une nouvelle Form
    Par michel_frederic dans le forum C#
    Réponses: 15
    Dernier message: 17/11/2005, 16h40

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