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 :

Affichage BD mysql avec datagrid


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 196
    Par défaut Affichage BD mysql avec datagrid
    Salut à tous,
    Voilà je veux faire l'affichage d'une table d'une BD MySql via DataGridView en VB 2008. J'ai fait un code pour cela mais c'est toujours l'exception qui est affiché
    J'utilise le connecteur MySqlconnector 6.2.2.0
    la table : cract
    BD : personne

    voilà le 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
    Imports MySql.Data.MySqlClient
    Public Class Form1
        Dim conn As New MySqlConnection
        Dim adapt As MySqlDataAdapter
        Dim ds As New DataSet
     
        Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
            conn.ConnectionString = "server=localhost, user id=root, password=, database=personne"
     
            Try
                conn.Open()
                adapt = New MySqlDataAdapter("SELECT * FROM cract", conn)
                adapt.Fill(ds, "cract")
                DataGrid1.DataSource = ds.Tables("cract")
            Catch ex As Exception
                MessageBox.Show("Erreur lors de affichage", "Afichage données", MessageBoxButtons.OK, MessageBoxIcon.Error)
            End Try
        End Sub
    End Class
    merci d'avance

  2. #2
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 126
    Par défaut
    Salut pourrais tu poster ton erreur?

  3. #3
    Membre Expert 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 : 41
    Localisation : France, Saône et Loire (Bourgogne)

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

    Informations forums :
    Inscription : Janvier 2007
    Messages : 1 707
    Par défaut
    Si c'est tout le code que tu as...

    Alors il manque:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    ds.Tables.Add("crat")
    Avant le Fill bien sur

  4. #4
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 196
    Par défaut
    j'ai fait cela mais sans succées j'ai essayée un autre code ca marche mais le probléme c'est que j'ai le champ suivant id_p (clé primaire avec auto incrémentation) si j'ajoute un nouveau enregistrement il s'incrémente auto mais cela n'a pas fonctionné c'est tjs la valeur null qui s'affiche dans le datagrid dans le champs id_p voilà le 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
    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
    102
    103
    104
    105
    106
    107
    108
    109
    110
     Private Enum StateEnum
            StateIdle = 0
            StateNew = 1
            StateEdit = 2
        End Enum
     
        Dim HostConn As New MySqlConnection 'Pour une conexion a base de données MySQL
        Dim da As MySqlDataAdapter 'is use to update the dataset and datasource
        Dim dst As New DataSet 'miniature of your table - cache table to client
        Dim State As StateEnum 'to know if it is in add, edit, or Idle
     
        Private Sub Form1_Load(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Load
            HostConn.ConnectionString = "server=localhost;" _
                                         & "user id=root;" _
                                         & "password=;" _
                                         & "database=personne"
     
            State = StateEnum.StateIdle
            Call StateChange()
     
            Try
                HostConn.Open()
                da = New MySqlDataAdapter("SELECT * FROM cract", HostConn)
                da.Fill(dst, "cract")
                DataGrid1.DataSource = dst.Tables("cract")
            Catch myerror As MySqlException
                MessageBox.Show("Error Connecting to Database: " & myerror.Message)
     
            End Try
        End Sub
     
        Private Sub btnClose_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnClose.Click
            Me.Close()
        End Sub
     
     
     
        Private Sub btnEdit_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnEdit.Click
            State = StateEnum.StateEdit
            Call StateChange()
            Me.BindingContext(dst.Tables("cract")).Position = DataGrid1.CurrentRowIndex
            txtnom.DataBindings.Add("text", dst.Tables("cract"), "nom")
            txtprenom.DataBindings.Add("text", dst.Tables("cract"), "prenom")
            txtun.DataBindings.Add("text", dst.Tables("cract"), "user")
            txtpass.DataBindings.Add("text", dst.Tables("cract"), "pw")
            Call RemoveDataBindings()
            DataGrid1.Enabled = True
        End Sub
     
        'this procedure is activate the behavior of the controls 
        Private Sub StateChange()
     
        End Sub
     
        Private Sub RemoveDataBindings()
            Dim Ctrl As Control
            For Each Ctrl In GroupBox1.Controls
                Ctrl.DataBindings.Clear()
            Next Ctrl
        End Sub
     
        Private Sub btnDelete_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnDelete.Click
            dst.Tables("cract").Rows(DataGrid1.CurrentRowIndex).Delete()
            Dim MyCommBuilder As New MySqlCommandBuilder(da)
            da.Update(dst, "cract")
     
        End Sub
     
        Private Sub btnSave_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnSave.Click
            State = StateEnum.StateNew
            Select Case State
                Case Is = StateEnum.StateNew 'Ajouter un record
                    Dim MyNewRow As DataRow = dst.Tables("cract").NewRow
                    Try
     
                        MyNewRow("nom") = txtnom.Text
                        MyNewRow("prenom") = txtprenom.Text
                        MyNewRow("user") = txtun.Text
                        MyNewRow("pw") = txtpass.Text
                        dst.Tables("cract").Rows.Add(MyNewRow)
     
                        Dim MyCommBuild As New MySqlCommandBuilder(da)
                        da.Update(dst, "cract")
                    Catch err As Exception
                        MsgBox(err.Message, MsgBoxStyle.Exclamation, "error")
                        dst = New DataSet
                        da = New MySqlDataAdapter("SELECT * FROM cract", HostConn)
                        da.Fill(dst, "cract")
                        DataGrid1.DataSource = dst.Tables("cract")
                        Exit Sub
                    End Try
     
                Case Is = StateEnum.StateEdit ' Modifier un record
                    Dim MyEditRow As DataRow = dst.Tables("cract").Rows(DataGrid1.CurrentRowIndex)
                    MyEditRow.BeginEdit()
                    MyEditRow("nom") = txtnom.Text
                    MyEditRow("prenom") = txtprenom.Text
                    MyEditRow("user") = txtun.Text
                    MyEditRow("pw") = txtpass.Text
     
                    Dim MyCommBuild As New MySqlCommandBuilder(da)
                    da.Update(dst, "cract")
     
                    MsgBox("Record has been updated", MsgBoxStyle.Information)
                    DataGrid1.Enabled = True
            End Select
     
            State = StateEnum.StateIdle
            Call StateChange()
        End Sub
    merci de m'aider

  5. #5
    Membre confirmé
    Homme Profil pro
    Conseil - Consultant en systèmes d'information
    Inscrit en
    Septembre 2009
    Messages
    188
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : Maroc

    Informations professionnelles :
    Activité : Conseil - Consultant en systèmes d'information
    Secteur : Conseil

    Informations forums :
    Inscription : Septembre 2009
    Messages : 188
    Par défaut
    Salut,

    C normal que tu n'arrives pas à l remplir.

    Corrige ton code

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    conn.ConnectionString = "server=localhost; database=certcom; uid=root; password=;"
    Tu viens de dire que tu voulais remplir un DatagridView alors que sur ton code, je vois un datagrid.

    Il faut mettre des points virgules au lieu des virgules. Pour le reste tout est bon

  6. #6
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 196
    Par défaut
    Merci pour la réponse mais je ne comprend pas vraiment ce que tu veux dire où je mets les virgules ? pour la connexion c'est bon dès le début je n'ai pas de pbléme de connexion mais le champs "id_p" je veux qu'il soit auto incrémentation , si j'ajoute un nouveau enregistrement il affiche (null) dans le champs "id_p"

  7. #7
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 196
    Par défaut
    bonjour
    voilà maintenant un problème vraiment je ne comprend rien une fois tout ca marche et tout d'un coup rien ne marche
    voilà l'exception :
    system.NullReferenceException : la référence d'objet n'est pas définie à une instance d'un objet
    voilà le code ( c'est un autre code ce n'est pas le même cité avant ) :

    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
    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
     
            conn.ConnectionString = "server=localhost;" _
                                         & "user id=root;" _
                                         & "password=;" _
                                         & "database=personne"
     
            Try
                conn.Open()
     
                MsgBox(ds.Tables("cract").Columns.Count)
     
            Catch ex As Exception
                MessageBox.Show(ex.ToString())
            End Try
     
        End Sub
    je veux savoir d'où provient le problème

  8. #8
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 126
    Par défaut
    d'ou vient ds ??
    Il n'intervient de nulle part.

    Pour ce style d'exception pense a utiliser le merveilleux utilitaire qu'est le debugger. Ca t'evitera une grande perte de temps ^^

  9. #9
    Membre confirmé
    Inscrit en
    Janvier 2010
    Messages
    196
    Détails du profil
    Informations forums :
    Inscription : Janvier 2010
    Messages : 196
    Par défaut
    comment puisse je le faire

  10. #10
    Membre confirmé
    Profil pro
    Étudiant
    Inscrit en
    Décembre 2008
    Messages
    126
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Décembre 2008
    Messages : 126
    Par défaut
    Comment faire quoi utiliser le debugger ?

    http://loulou.developpez.com/tutoriels/cpp/debogueur-visual-studio/

    Super tutoriel pour l'utilisation du debug ^^

Discussions similaires

  1. [MySQL] problème d'affichage dans tableau avec bdd Mysql
    Par sinifer dans le forum PHP & Base de données
    Réponses: 5
    Dernier message: 01/05/2009, 09h50
  2. Probleme affichage avec datagrid & sql server 2005
    Par abelmasengu dans le forum ASP.NET
    Réponses: 1
    Dernier message: 09/03/2009, 11h48
  3. [VB 6.0] - problème avec Datagrid pour l'affichage de valeurs
    Par jimbololo dans le forum VB 6 et antérieur
    Réponses: 3
    Dernier message: 24/04/2007, 09h57
  4. Réponses: 2
    Dernier message: 09/11/2006, 09h59
  5. affichage de liens avec MySQL
    Par Jasmine80 dans le forum SGBD
    Réponses: 8
    Dernier message: 08/11/2006, 16h15

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