Bonjour,
je m'arrache les cheveux sur une portion de code sans comprendre ce qu'il se passe. La situation : j'ai un Dataset typé contenant 1 table tblMembres qui contient 1 champ 'MembreID' de type System.Guid. Je parcours les lignes du Dataset pour construire une collection d'objets Membres. Voici la portion de code concernée :
Je mets un BreakPoint après ces lignes et là, l'incompréhensible se produit :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7 If MyDataSet.tblMembres.Rows.Count > 0 Then For Each r As DataRow In MyDataSet.tblMembres.Rows Dim MyMembre As New Objects.Membre MyMembre.ID = CType(r("MembreID"), System.Guid) MyMembre.Adresse = r("Adresse").ToString [...]
En passant le curseur sur MyMembre.ID, il m'est indiqué que la propriété vaut Empty. Or, dans l'Immediate Window, si je tape : "? MyMembre.ID.ToString", il m'affiche bien le Guid attendu !!! (Même chose en affichant via une msgBox.) Le reste des propriétés contient bien les données attendues (adresse, tel, etc...)
Le problème c'est que cette propriété ne peut être vide et me lève donc des exceptions. Le problème se reproduit un peu plus loin, à chaque fois avec les propriétés de type Guid ! Et à chaque fois, dans l'Immediate Window, j'obtiens bien le Guid contenu dans ces propriétés !?
Je deviens dingue à essayer de comprendre...
J'ai pensé un moment que c'était la conversion Ctype(r("Classement"), System.Guid) qui posait problème mais, dans l'Immediate Window, si je tape : "? Ctype(r("Classement"), System.Guid).ToString, il m'affiche bien le Guid !
Si, dans la fenêtre de code , je mets la souris sur "r", il m'affiche bien toutes les colonnes de la ligne concernée avec les bonnes données SAUF les colonnes de type Guid, qui sont Empty !!!
Partager