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 :

problème d'objets dans un datasource


Sujet :

VB.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre expérimenté
    Avatar de Kropernic
    Homme Profil pro
    Analyste / Programmeur / DBA
    Inscrit en
    Juillet 2006
    Messages
    3 932
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : Belgique

    Informations professionnelles :
    Activité : Analyste / Programmeur / DBA
    Secteur : Distribution

    Informations forums :
    Inscription : Juillet 2006
    Messages : 3 932
    Par défaut problème d'objets dans un datasource
    Bonjour tout le monde.

    J'ai un bug que je ne comprends pas...

    C'est quelque chose qui marche bien plusieurs fois puis après une action précise, ça ne marche plus ^^.

    Jetez d'abord un oeil à la pièce jointe (gui.jpg). Il s'agit d'un formulaire listant les différents devices (gsm, laptop et carte vpn) en possession d'un user. Il permet également d'en faire la gestion. (Formulaire qui s'intègre dans une application de user management).

    Voici une sub qui est appelée lors de l'event CheckedChanged des RadioButton en haut de la form (cfr. pièce jointe).

    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
     
    Private Sub InitGroupBox(ByVal device As String)
            Select Case device
                Case "rbGsm"
                    dgvDevice.DataSource = Nothing
                    dgvDevice.DataSource = user.Gsms
                    dgvDevice.Columns("SimCard").Visible = False
     
                    gbDelDevice.Text = "Retirer un gsm de ce user"
                    lblDelDevice.Text = "Liste des gsm's de ce user"
                    cbDelDevice.DataSource = Nothing
                    cbDelDevice.DisplayMember = "Imei"
                    cbDelDevice.ValueMember = "Imei"
                    cbDelDevice.DataSource = user.Gsms
     
                    gbAddDevice.Text = "Attribuer un gsm à ce user"
                    lblAddDevice.Text = "Liste des gsm's disponibles"
     
                    cbAddDevice.DataSource = Nothing
                    cbAddDevice.DisplayMember = "Imei"
                    cbAddDevice.ValueMember = "Imei"
                    cbAddDevice.DataSource = GsmDAO.GetFreeGsms()
     
                    gbEditDevice.Text = "Modifier un gsm de ce user"
                    lblEditDevice.Text = "Liste des gsm's de ce user"
                    cbEditDevice.DataSource = Nothing
                    cbEditDevice.DisplayMember = "Imei"
                    cbEditDevice.ValueMember = "Imei"
                    cbEditDevice.DataSource = user.Gsms
                Case "rbLaptop"
                    dgvDevice.DataSource = user.Laptops
     
                    gbDelDevice.Text = "Retirer un laptop de ce user"
                    lblDelDevice.Text = "Liste des laptops de ce user"
                    cbDelDevice.DataSource = Nothing
                    cbDelDevice.DisplayMember = "Serial"
                    cbDelDevice.ValueMember = "Serial"
                    cbDelDevice.DataSource = user.Laptops
     
                    gbAddDevice.Text = "Attriber un laptop à ce user"
                    lblAddDevice.Text = "Liste des laptops disponibles"
                    cbAddDevice.DataSource = Nothing
                    cbAddDevice.DisplayMember = "Serial"
                    cbAddDevice.ValueMember = "Serial"
                    cbAddDevice.DataSource = LaptopDAO.GetFreeLaptops()
     
                    gbEditDevice.Text = "Modifier un gsm de ce user"
                    lblEditDevice.Text = "Liste des laptops de ce user"
                    cbEditDevice.DataSource = Nothing
                    cbEditDevice.DisplayMember = "Serial"
                    cbEditDevice.ValueMember = "Serial"
                    cbEditDevice.DataSource = user.Laptops
                Case "rbVpn"
                    dgvDevice.DataSource = user.Vpns
     
                    gbDelDevice.Text = "Retirer un carte vpn de ce user"
                    lblDelDevice.Text = "Liste des cartes vpn de ce user"
                    cbDelDevice.DataSource = Nothing
                    cbDelDevice.DisplayMember = "Serial"
                    cbDelDevice.ValueMember = "Serial"
                    cbDelDevice.DataSource = user.Vpns
     
                    gbAddDevice.Text = "Attribuer une carte vpn à ce user"
                    lblAddDevice.Text = "Liste des cartes vpn disponibles"
                    cbAddDevice.DataSource = Nothing
                    cbAddDevice.DisplayMember = "Serial"
                    cbAddDevice.ValueMember = "Serial"
                    cbAddDevice.DataSource = VpnDAO.GetFreeVpns()
     
                    gbEditDevice.Text = "Modifier une carte vpn de ce user"
                    lblEditDevice.Text = "Liste des cartes vpn de ce user"
                    cbEditDevice.DataSource = Nothing
                    cbEditDevice.DisplayMember = "Serial"
                    cbEditDevice.ValueMember = "Serial"
                    cbEditDevice.DataSource = user.Vpns
            End Select
        End Sub
    Au load de la form, j'initialise les radiobutton avec
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
        Private Sub frmDevices_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            rbGsm.Checked = True
        End Sub
    Ce qui me pose problème ne concerne que les gsm's (rien n'est encore implémenté pour les autres devices). Cela marche très bien quand j'ajoute un gsm. Par contre, quand je retire un gsm du user, le gsm disparait bien du datagridview et l'update DB est correctement effectué mais il y a un manifestement un problème (voir pièce jointe prob.jpg). C'est pourtant le même code qui est exécuté à chaque fois.

    Pourquoi est-ce que lors de la suppression, il ne m'affiche plus la liste encore existante ?
    De plus, lorsque je clique sur le record du DataGridView, l'imei du gsm s'affiche bien dans la ComboBox. Il a donc bien la liste en DataSource. Mais lorsque je déroule la ComboBox, il y a toujours "UserManagement.Gsm" qui s'affiche plutot que la valeur attendue.

    Bref, c'est la première fois que je travaille vraiment avec mes propres objets et je suis un peu perdu sur la manière de résoudre ce problème.

    J'espère avoir été clair :-/

    Merci d'avance,

    Griftou.
    Images attachées Images attachées   

Discussions similaires

  1. [Débutant] Problème ajout objet dans fichier xml.
    Par Vidou12 dans le forum VB.NET
    Réponses: 3
    Dernier message: 13/02/2015, 12h36
  2. [Débutant] Problème suppression objet dans une collection
    Par ziggy76 dans le forum VB.NET
    Réponses: 2
    Dernier message: 11/03/2014, 23h16
  3. Problème d'objets dans un TStrings
    Par microJaP dans le forum Langage
    Réponses: 16
    Dernier message: 01/03/2008, 09h36
  4. Réponses: 8
    Dernier message: 12/04/2007, 11h32
  5. [Delta3d] probléme avec un objet dans une map
    Par astragoth dans le forum Développement 2D, 3D et Jeux
    Réponses: 1
    Dernier message: 27/03/2006, 14h49

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