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 :

utilisation d'un datagridview


Sujet :

VB.NET

  1. #1
    Membre actif Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Points : 220
    Points
    220
    Par défaut utilisation d'un datagridview
    Bonjour,

    Je cherche un exemple d'utilisation d'un datagridview lier a une base de donnees ??
    Comment faire la mise a jour de la base de données apres modification des valeur dans le datagridview!

    Merci d'avance
    - La communication consiste a comprendre celui qui ecoute !
    - Qui veut faire quelquechose trouve un moyen, qui ne veut rien faire trouve une excuse

  2. #2
    Membre expérimenté

    Homme Profil pro
    kiné passionné de dev
    Inscrit en
    Mars 2006
    Messages
    1 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : kiné passionné de dev

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 570
    Points : 1 738
    Points
    1 738
    Billets dans le blog
    1
    Par défaut
    c'est compliqué a expliquer si tu veux faire ça par le code.

    Sinon, ce que ut peux faire, c'est ajouter un dataset, et là ça devrait e faire tout seul^^
    Petit poulain devient grand de jour en jour...

    Petit Poulain, ce n'est que pour les intimes!

  3. #3
    Membre actif Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Points : 220
    Points
    220
    Par défaut
    Ben, les données sont bien chargées dans la datagridview...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    Me.DataGridView1.DataSource = me._datatable
    Mais quand je fais des modifs, elles ne sont pas repercutées dans la base de données.?????

    j'ai essayé de trouver des exemples sur google et sur http://plasserre.developpez.com/vsommair.htm mais j'ai rien trouvé.

    Je cherche un exemple tout simple, une table, un datagridview...
    et quand on fait des modif dedans, ça modifie les données de la table.
    - La communication consiste a comprendre celui qui ecoute !
    - Qui veut faire quelquechose trouve un moyen, qui ne veut rien faire trouve une excuse

  4. #4
    Membre actif Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Points : 220
    Points
    220
    Par défaut
    Complement d'information.
    Apres quelques tests, je ne vois toujours pas !!!!
    voila ce que je fais.
    j'ai une class qui pointe sur une table:
    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
     
       Public Class MaClass
            Private _strConn As String
            Private _strSql As String
            Private _adapter As OleDbDataAdapter
            Private _ObjDataSet As New Data.DataSet
            Private _ObjetCommandBuilder As OleDbCommandBuilder
     
            Public Sub New()
                _strConn = My.Resources.ConnectAccess.ToString()
                _strSql = "SELECT * FROM Table1"
     
                _adapter = New OleDbDataAdapter(_strSql, _strConn)
                _ObjDataSet = New Data.DataSet
                _adapter.Fill(_ObjDataSet)
            End Sub
     
            Public ReadOnly Property datatable() As DataTable
    	    Get
    		Return (_ObjDataSet.Tables(0))
    	    End Get
    	End Property
    	Public ReadOnly Property dataset() As DataSet
    	    Get
    		Return (_ObjDataSet)
    	    End Get
            End Property
    Puis dans ma form:

    code qui ne fonctionne pas(n'affiche aucune valeur dans le DataGridView1):
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
     Public Class frm1
         Private _class As New MaClass
     
         Private Sub frm1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
             Me.BindingSource1.DataSource = Me._class.dataset
             Me.DataGridView1.DataSource = Me.BindingSource1
         End Sub
     End Class
    code qui fonctionne(affiche les données de ma table :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     Public Class frm1
          Private _class As New MaClass
     
          Private Sub frm1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
              Me.DataGridView1.DataSource = Me._class.datatable
          End Sub
     End Class
    Comment fait-on pour affecter les mise a jour du "DataGridView1" dans ma table ????
    merci d'avance.
    - La communication consiste a comprendre celui qui ecoute !
    - Qui veut faire quelquechose trouve un moyen, qui ne veut rien faire trouve une excuse

  5. #5
    Membre actif Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Points : 220
    Points
    220
    Par défaut
    Personne pour m'aider ???
    je cherche une piste !!!
    - La communication consiste a comprendre celui qui ecoute !
    - Qui veut faire quelquechose trouve un moyen, qui ne veut rien faire trouve une excuse

  6. #6
    Membre actif Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Points : 220
    Points
    220
    Par défaut
    J'ai fait ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    DataGridView1.AutoGenerateColumns = True
    Me._dataset = MaCalass.dataset
    BS = New BindingSource(Me._dataset, "Table1")
    Me.DataGridView1.DataSource = Me.BS
    et un bouton avec:
    et les données ne sont toujours pas enregistrées dans la table !
    - La communication consiste a comprendre celui qui ecoute !
    - Qui veut faire quelquechose trouve un moyen, qui ne veut rien faire trouve une excuse

  7. #7
    Membre actif Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Points : 220
    Points
    220
    Par défaut
    Grrrrr !!
    J'en suis là !!!
    mais ça ne fait toujours pas les mise à jour dans la table !!

    dans ma class j'ai ajouté:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     _ObjDataSet.DataSetName = "Table1"
     _ObjDataSet.Tables(0).TableName = "Table1"
    et dans ma form
    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
     
     Public Class frm1
           Private _class As New MaClass
           Private _dataset As DataSet
           Private _BS As BindingSource
     
           Private Sub frm1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
                    DataGridView1.AutoGenerateColumns = True
                    Me._dataset = Me._jourferie.dataset
            	Me._BS = New BindingSource(Me._dataset, "Table1")
     
            	Me.DataGridView1.DataSource = Me._BS
           End Sub
         Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Me._dataset.AcceptChanges()
        End Sub      
     End Class
    - La communication consiste a comprendre celui qui ecoute !
    - Qui veut faire quelquechose trouve un moyen, qui ne veut rien faire trouve une excuse

  8. #8
    Membre expérimenté

    Homme Profil pro
    kiné passionné de dev
    Inscrit en
    Mars 2006
    Messages
    1 570
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France

    Informations professionnelles :
    Activité : kiné passionné de dev

    Informations forums :
    Inscription : Mars 2006
    Messages : 1 570
    Points : 1 738
    Points
    1 738
    Billets dans le blog
    1
    Par défaut
    Oui, mais je ne parlais pas de faire ça, avec un dataset créé par le code, je parlais de faire ça avec le designer.

    Et quand tu fais un changement, tu fais un update du dataset.

    Par le code, tu dois faire une procédure...
    Petit poulain devient grand de jour en jour...

    Petit Poulain, ce n'est que pour les intimes!

  9. #9
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 219
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 79
    Localisation : France

    Informations professionnelles :
    Secteur : Services à domicile

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 219
    Points : 1 707
    Points
    1 707
    Par défaut
    est-ce qu'à l'installation de la base de donnée dans ton projet tu a choisi de faire une copie de la base si c'est le cas j'ai eu le même problème, j'ai pas bien compris dans l'aide l'explication "Je débute en vb 2008 express", j'ai pour ma part laissé la base de donnée à sa place initiale et maintenant l'update fonctionne normalement !!!

  10. #10
    Membre actif Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Points : 220
    Points
    220
    Par défaut
    Euhh installer la base ??
    C'est une base access, j'ai juste créé une ressource pour acceder a cette base.
    C'est la premiere fois que j'utilise un datagridview... dans mes autres forms je fais toutes les mise a jour a l'aide de UPDATE(une instruction sql des plus classique) ou OleDbDataAdapter.update(datarow) ... c'est 2 methode fonctionnent a merveille!!!

    Mais là, je pensais ne pas avoir a pondre une methode qui recupere le nouveau dataset(modifié par l'utilisateur dans le datagridview) et le comparare pour mettre a jour mon dataset de ma class...ça me parait super mega lourd!
    mais je n'ai peut-etre pas le choix ????????

    Une procedure ????

    merci pour vos reponses
    - La communication consiste a comprendre celui qui ecoute !
    - Qui veut faire quelquechose trouve un moyen, qui ne veut rien faire trouve une excuse

  11. #11
    Membre actif Avatar de Elwe31
    Profil pro
    Inscrit en
    Octobre 2004
    Messages
    487
    Détails du profil
    Informations personnelles :
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations forums :
    Inscription : Octobre 2004
    Messages : 487
    Points : 220
    Points
    220
    Par défaut
    YOOOOUUUUUPPPIIIIIII !!!!

    J'ai trouvééééé !!!!!!
    Alors voila:

    Ma class :
    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
     
    Public Class MaClass
            Private _strConn As String
            Private _strSql As String
            Private _adapter As OleDbDataAdapter
            Private _ObjDataSet As New Data.DataSet
            Private _ObjetCommandBuilder As OleDbCommandBuilder
     
            Public Sub New()
                _strConn = My.Resources.ConnectAccess.ToString()
                _strSql = "SELECT * FROM Table1"
     
                _adapter = New OleDbDataAdapter(_strSql, _strConn)
                _ObjDataSet = New Data.DataSet
                _adapter.Fill(_ObjDataSet)
            End Sub
     
            Public ReadOnly Property datatable() As DataTable
    	    Get
    		Return (_ObjDataSet.Tables(0))
    	    End Get
    	End Property
     
            Public Sub UpdateDataset(ByVal d As DataTable)
                _ObjetCommandBuilder = New OleDbCommandBuilder(_adapter)
                _adapter.Update(d)
                _ObjetCommandBuilder = Nothing
            End Sub
    Et dans ma form:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
     
    Public Class frmMaForm
        Private _maclass As New MaClass
     
        Private Sub frmMaForm_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            DataGridView1.AutoGenerateColumns = True
            Me.DataGridView1.DataSource = Me._jourferie.datatable
        End Sub
     
        Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
            Me._maclass.UpdateDataset(Me.DataGridView1.DataSource)
        End Sub
    End Class
    - La communication consiste a comprendre celui qui ecoute !
    - Qui veut faire quelquechose trouve un moyen, qui ne veut rien faire trouve une excuse

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

Discussions similaires

  1. [Débutant] utilisation d'un DataGridview
    Par progscoubi dans le forum C#
    Réponses: 1
    Dernier message: 03/10/2011, 10h29
  2. utilisation du controle datagridview
    Par cyborgtun dans le forum VB.NET
    Réponses: 1
    Dernier message: 01/03/2011, 14h05
  3. Réponses: 2
    Dernier message: 07/10/2009, 19h20
  4. Utilisation d'un DataGridView
    Par gabest dans le forum C++/CLI
    Réponses: 0
    Dernier message: 24/08/2007, 11h42
  5. [c#] Utilisation manuelle du dataGridView
    Par damned3 dans le forum Windows Forms
    Réponses: 3
    Dernier message: 16/01/2007, 23h38

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