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 :

2 MySqlDataAdapter = erreur


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Par défaut 2 MySqlDataAdapter = erreur
    Bonsoir, voila déjà plus de 2 heures que je me penche sur un problème, ou google n'a pas su étre mon amis sur ce coup là

    J'ai une fenêtre dans laquelle j'ai un "datagridview" et une "combobox" chacun alimenté par une 2 tables différente de ma base MySQL.

    ma combobox fonctionne bien j'ai bien mes données issu de la table (agents) qui s'affiche, mais rien dans mon datagridview

    voici mon code au chargement de la page :

    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
    Imports System
    Imports System.Data
    Imports MySql.Data.MySqlClient
     
    Public Class Affecter
     
        Dim con As New MySqlConnection
        Dim constr As String = "server=localhost;" _
                                         & "user id=root;" _
                                         & "password=;" _
                                         & "database=intervention"
        Dim de As MySqlDataAdapter
        Dim dsp As New DataSet
     
     
     
        Private Sub Affecter_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'pour ma combobox PAS DE SOUCIS
            Try
                con.ConnectionString = constr
                con.Open()
            Catch ex As MySqlException
                MsgBox(ex.Message)
            End Try
     
            Dim sStmt As String = "SELECT id, nom, prenom FROM agents"
            Dim cmd As New MySqlCommand(sStmt, con)
     
            Dim da As MySqlDataAdapter = New MySqlDataAdapter(cmd)
            Dim dt As New DataTable("agents")
            da.Fill(dt)
     
            If dt.Rows.Count > 0 Then
                ComboBox1.DataSource = dt
                ComboBox1.DisplayMember = "nom" 'What is displayed
                ComboBox1.ValueMember = "id" 'The ID of the row
            End If
            'pour mon DATAGRIDVIEW rien ne s'affiche pourtant la requete est bonne
            de = New MySqlDataAdapter("SELECT * FROM affectations", con)
            de.Fill(dsp, "affectations")
            DataGridView1.DataSource = dsp.Tables("affectations")
            DataGridView1.Columns("id").Visible = False
            DataGridView1.Columns("vehicule").Visible = False
            DataGridView1.Columns("fonction").Visible = False
            DataGridView1.Columns("personne").HeaderText = "Nom"
            DataGridView1.Columns(5).Width = 150 'nom
            DataGridView1.Columns("heure_deb").HeaderText = "Heure de Début"
            DataGridView1.Columns(1).Width = 100 'prenom
            DataGridView1.Columns("heure_fin").HeaderText = "Heure de Fin"
            DataGridView1.Columns(2).Width = 210 'fonction
            DataGridView1.AllowUserToAddRows = False
            DataGridView1.RowHeadersVisible = False
     
     
        End Sub
    ce qui est bizarre c'est que je n'ai pas de message d'erreur et si j’enlève la partie pour charger les données dans la combobox de la table agents là le datagridview m'affiche bien ma table affectations !

  2. #2
    Membre confirmé
    Homme Profil pro
    Inscrit en
    Mai 2010
    Messages
    132
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Australie

    Informations professionnelles :
    Secteur : Bâtiment

    Informations forums :
    Inscription : Mai 2010
    Messages : 132
    Par défaut
    Essai de tout mettre dans un try/catch pour etre vraiment sur qu'il n'y a pas d'erreur comme ta sub est un handler du load event d'un formulaire, l'erreur est avalée silencieusement (vbnet power)

    Sinon tes deux MySqlAdapter utilise la même connection, il faut sans doute que tu ferme le premier avant d'exécuter le deuxième, ce qui expliquerait pourquoi quand tu enlève le premier ca fonctionne...

    Zebrette

  3. #3
    Inactif  
    Homme Profil pro
    Chef de projet NTIC
    Inscrit en
    Janvier 2007
    Messages
    6 604
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 64
    Localisation : France

    Informations professionnelles :
    Activité : Chef de projet NTIC

    Informations forums :
    Inscription : Janvier 2007
    Messages : 6 604
    Par défaut
    Citation Envoyé par zebrette Voir le message
    Essai de tout mettre dans un try/catch pour etre vraiment sur qu'il n'y a pas d'erreur comme ta sub est un handler du load event d'un formulaire, l'erreur est avalée silencieusement (vbnet power)
    Non, ce n'est pas un problème VB.Net, c'est un problème des Winform.

  4. #4
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Par défaut
    Citation Envoyé par Bluedeep Voir le message
    Non, ce n'est pas un problème VB.Net, c'est un problème des Winform.
    Très pénible qui plus est -_-

  5. #5
    Membre éclairé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2007
    Messages
    758
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Finance

    Informations forums :
    Inscription : Février 2007
    Messages : 758
    Par défaut
    Un problème des winform ! et quelle est la solution ?

  6. #6
    Membre Expert
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2010
    Messages
    793
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 35
    Localisation : France, Mayenne (Pays de la Loire)

    Informations professionnelles :
    Activité : Développeur .NET

    Informations forums :
    Inscription : Novembre 2010
    Messages : 793
    Par défaut
    Potentiellement ton problème est là.
    Le problème WinForms est de ne plus provoquer d'exception lors d'une erreur dans le load d'un formulaire.
    Tu peux couper tout ce que tu as dans ton load, et le mettre dans une sub que tu appelles à partir du load.
    Ca fonctionnera peut être. (enfin ton exception sera peut être levée)

  7. #7
    Modérateur
    Avatar de Sankasssss
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Novembre 2006
    Messages
    1 842
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : Belgique

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : Administration - Collectivité locale

    Informations forums :
    Inscription : Novembre 2006
    Messages : 1 842
    Par défaut
    Bonsoir,


    Citation Envoyé par gastoncs Voir le message
    ce qui est bizarre c'est que je n'ai pas de message d'erreur et si j’enlève la partie pour charger les données dans la combobox de la table agents là le datagridview m'affiche bien ma table affectations !
    En partant de cette affirmation on pourrait se dire qu'en inversant les deux, la table affectation devrait se remplir en premier comme si la table agent n'existait pas...

    Donc il serait intéressant de tester ceci :
    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
        Private Sub Affecter_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'pour ma combobox PAS DE SOUCIS
            Try
                con.ConnectionString = constr
                con.Open()
            Catch ex As MySqlException
                MsgBox(ex.Message)
            End Try
     
            'pour mon DATAGRIDVIEW rien ne s'affiche pourtant la requete est bonne
            Using de As New MySqlDataAdapter("SELECT * FROM affectations", con)
                de.Fill(dsp, "affectations")
            End Using
     
            DataGridView1.DataSource = dsp.Tables("affectations")
            DataGridView1.Columns("id").Visible = False
            DataGridView1.Columns("vehicule").Visible = False
            DataGridView1.Columns("fonction").Visible = False
            DataGridView1.Columns("personne").HeaderText = "Nom"
            DataGridView1.Columns(5).Width = 150 'nom
            DataGridView1.Columns("heure_deb").HeaderText = "Heure de Début"
            DataGridView1.Columns(1).Width = 100 'prenom
            DataGridView1.Columns("heure_fin").HeaderText = "Heure de Fin"
            DataGridView1.Columns(2).Width = 210 'fonction
            DataGridView1.AllowUserToAddRows = False
            DataGridView1.RowHeadersVisible = False
     
            Dim sStmt As String = "SELECT id, nom, prenom FROM agents"
            Using cmd As New MySqlCommand(sStmt, con)
                Using da As MySqlDataAdapter = New MySqlDataAdapter(cmd)
                    Dim dt As New DataTable()
                    da.Fill(dt)
     
                    ComboBox1.DataSource = dt
                    ComboBox1.DisplayMember = "nom" 'What is displayed
                    ComboBox1.ValueMember = "id" 'The ID of the row
     
                End Using
     
            End Using
     
        End Sub

Discussions similaires

  1. Erreur fréquente avec ASP et IIS
    Par Community Management dans le forum ASP
    Réponses: 2
    Dernier message: 11/02/2004, 22h20
  2. Check Url pour savoir si erreur 404 ou si le site existe
    Par Clément[Delphi] dans le forum Composants VCL
    Réponses: 2
    Dernier message: 07/08/2002, 13h49
  3. Réponses: 2
    Dernier message: 27/05/2002, 19h46
  4. erreur IDL:omg.org/CORBA/MARSHAL:1.0
    Par Pinggui dans le forum CORBA
    Réponses: 3
    Dernier message: 13/05/2002, 15h05
  5. [Kylix] Erreur objet
    Par Anonymous dans le forum EDI
    Réponses: 1
    Dernier message: 22/03/2002, 09h41

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