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

C# Discussion :

transtypage dans un type qui varie


Sujet :

C#

  1. #1
    Membre actif Avatar de Braillane
    Profil pro
    Développeur Java
    Inscrit en
    Janvier 2007
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2007
    Messages : 212
    Points : 203
    Points
    203
    Par défaut transtypage dans un type qui varie
    Bonjour,
    Je suis un train de faire une appli ou je dois mettre des données xml dans un dataset. Je parcours mes tables et mes colonnes pour ajouter les données de mon XML, le problème est que les données de mon XML sont des strings et que mes champs de mon dataset ne sont pas forcément des strings... je voudrais donc transtypés ma donnée xml dans le type de ma colum de dataset.
    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
    int i=0;
            DataTable table;
            Type montype;
            DataRow row;
            XmlDocument myxml = new XmlDocument();
            myxml.Load(ficXML);
            XmlNode rootNode = myxml.DocumentElement;
            foreach (XmlNode TableNode in rootNode.ChildNodes)
            {
                table= mds.Tables[TableNode.Name];
                row= table.NewRow();
                foreach (XmlNode rowNode in TableNode.ChildNodes)
                {
                    i = table.Columns.IndexOf(rowNode.Name);
                    if(i!= -1)
                    {
                        /////   le probème de type est ici!!!!  /////
                        row[rowNode.Name]=rowNode.InnerXml;
                    }
                }
                table.Rows.Add(row);
            }
    Quelqu'un aurait une idée de ce que je pourrais faire?
    thibaultdelor.com
    SCJP & SCWCD

  2. #2
    Membre expert
    Avatar de hed62
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Juillet 2007
    Messages
    2 029
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 39
    Localisation : France, Nord (Nord Pas de Calais)

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

    Informations forums :
    Inscription : Juillet 2007
    Messages : 2 029
    Points : 3 134
    Points
    3 134
    Par défaut
    Tu peux peut etre ajoute run attribut qui te permettrai de savoir comment caster tes données ?
    Hervé Delannoy, Ingénieur études&développement.

    Je n'accepte pas les demandes de mise en relation MSN/yahoo sans motif.
    ------------------------------------------------------------------------
    Si , ni , ne peuvent vous aider, mais nous oui, pensez à un pti et au !
    Merci de vous relire
    ____________________________________________________________________________________
    Recherche joueurs de "Magic" sur Lille et environs.
    Donner plutôt que jeter.

  3. #3
    Membre actif Avatar de Braillane
    Profil pro
    Développeur Java
    Inscrit en
    Janvier 2007
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2007
    Messages : 212
    Points : 203
    Points
    203
    Par défaut
    Citation Envoyé par hed62 Voir le message
    Tu peux peut etre ajoute run attribut qui te permettrai de savoir comment caster tes données ?
    Oula j'ai pas très bien compris ce que je devais faire la?

    Je me suis amussé à regardé quels types était retournés par getType() pour chaque champ. Il apparait que tout mes identifiants avec l'attribut autoincrement sont en Int32 et les autres en DBNull...
    thibaultdelor.com
    SCJP & SCWCD

  4. #4
    Membre du Club
    Inscrit en
    Novembre 2006
    Messages
    77
    Détails du profil
    Informations personnelles :
    Âge : 39

    Informations forums :
    Inscription : Novembre 2006
    Messages : 77
    Points : 61
    Points
    61
    Par défaut
    Sinon essaye un beau schéma xsd si ton xml le permet comme ca tu pourras paramétrer les types de noeud....

    Tu peux générer le xsd directement sous VS
    Si tu veux plus d'infos n'hésite pas

  5. #5
    Membre expérimenté
    Profil pro
    Inscrit en
    Juillet 2006
    Messages
    1 103
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France, Meurthe et Moselle (Lorraine)

    Informations forums :
    Inscription : Juillet 2006
    Messages : 1 103
    Points : 1 561
    Points
    1 561
    Par défaut
    Tout objet à une méthode ToString() qui permet de convertir l'objet en sa représentation chaine.
    Maintenant, il est vrai que cette méthode est la plupart du temps non surchargée, et dans ce cas, le type de l'instance est retournée...
    mais ce n'est pas plus stupide que d'envisager un cast dans le sens (string)obj

    En revanche si ton probleme se situe à la lecture de ton XML, quand tu souhaite convertir les données chaine dans le type d'origine, là c'est plus complexe et justement je me demandais comment faire, car moi j'ai le probleme dans un mécanisme de sérialisation/deserialisation personnel sur des types "dynamiques" que je ne connais pas à la compilation, mais uniquement à l'exécution.

    aussi j'en profite pour poser une question:

    Existe t'il une classe, une commande ou quoi ce que soit, qui permette de faire du Cast à la volée, lors de l'exécution si le type destination n'est pas connue.
    En gros à l'exécution j'ai la donnée sous une forme, et j'ai son objet Type représentant le type de desitination... existe t'il une méthode qui ferait ce cast... (en supposant que le cast implicite ou explicite ai été défini... sinon exception...)

  6. #6
    Membre actif Avatar de Braillane
    Profil pro
    Développeur Java
    Inscrit en
    Janvier 2007
    Messages
    212
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Développeur Java

    Informations forums :
    Inscription : Janvier 2007
    Messages : 212
    Points : 203
    Points
    203
    Par défaut
    Citation Envoyé par pdesoil Voir le message
    Sinon essaye un beau schéma xsd si ton xml le permet comme ca tu pourras paramétrer les types de noeud....

    Tu peux générer le xsd directement sous VS
    Si tu veux plus d'infos n'hésite pas
    J'ai deja un xsd. En fait j'ai un schéma xsd qui est dans un certain format que je ne peux pas changer car il est utilisé par une autre appli. A coté j'ai un xml qui est dans un autre format (qui m'est imposé) et du coup je dois me faire ma propre fonction readXML. En bref je peux pas faire vraiment autrement que ce que je suis en train de faire....
    Citation Envoyé par cinemania
    Tout objet à une méthode ToString() qui permet de convertir l'objet en sa représentation chaine.
    Maintenant, il est vrai que cette méthode est la plupart du temps non surchargée, et dans ce cas, le type de l'instance est retournée...
    mais ce n'est pas plus stupide que d'envisager un cast dans le sens (string)obj
    Le problème est que c'est le membre de droite de l'affectation dont le type est inconnu donc je peux pas le caster...
    thibaultdelor.com
    SCJP & SCWCD

Discussions similaires

  1. extraction dans une chaine "qui varie"
    Par sofiane_bfm007 dans le forum Développement de jobs
    Réponses: 1
    Dernier message: 12/10/2010, 10h53
  2. le type charctére varying des colonnes dans postegreSQL
    Par NGeVtC87 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 08/02/2010, 23h59
  3. [C#] Icône dans la "ListView" qui disparraîsse
    Par sorcer1 dans le forum Windows Forms
    Réponses: 11
    Dernier message: 10/02/2005, 19h46
  4. [XML] caractères spéciaux dans un type NMTOKEN
    Par norkius dans le forum XML/XSL et SOAP
    Réponses: 7
    Dernier message: 08/09/2004, 14h30
  5. [D7-EXCEL2000] Formule dans cellule Excel qui ne se calcule pas
    Par Albertolino dans le forum API, COM et SDKs
    Réponses: 3
    Dernier message: 09/09/2003, 14h18

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