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

Accès aux données Discussion :

[2.0, C#] Récupérer des données dans une DataTable de String (cast automatique) ?


Sujet :

Accès aux données

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 224
    Points : 99
    Points
    99
    Par défaut [2.0, C#] Récupérer des données dans une DataTable de String (cast automatique) ?
    Bonjour,

    Y a t'il un moyen de récupérer toutes les données d'une table d'une base de données (via SqlDataAdapter) dans une DataTable avec toutes les données converties en String, au lieu des différents types natifs de la table dans la bdd ?

    Par exemple, quand je récupère les données d'une requête dans une DataTable, je fais :

    Code C# : Sélectionner tout - Visualiser dans une fenêtre à part
    monSqlDataAdapter.Fill(maTable);

    Et la DataTable 'matable' prend automatiquement comme type de colonnes ceux définis dans la base de données.. Mais existe t'il un moyen de récupérer les données dans une DataTable avec un cast automatique en String ? c'est à dire de récupérer mes données dans une DataTable dont toutes les colonnes seraient de type String (avec un cast automatique) ?

    je voudrais éviter d'avoir à parcourir tout le tableau moi même pour faire un Convert ou un ToString()..

    d'avance merci pour votre aide.

  2. #2
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 168
    Points : 123
    Points
    123
    Par défaut
    Je pense pas que ce soit possible, tu peux récupérer avec un simple fill comme tu le fais, puis créer une nouvelle DataTable ou tu crées dynamiquement tes Columns en parcourant celle de la table d'origine (tu spécifies le type du champ toujours à String).

    Ensuite tu parcours tous tes rows et tu insers avec un .ToString()... pas génial, mais je pense vraiment pas qu'une telle fonction soit disponible...

    Pourquoi tu souhaites une table avec que ce type ?
    Peut être que tu peux le convertir lorsque tu utilises ces données... Ca vaudrais peut etre le coup de nous expliquer c'est pour faire quoi

    Bonne continuation.

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 224
    Points : 99
    Points
    99
    Par défaut
    Bonjour Alexandre, merci.

    En fait je me fait une belle classe qui me génère une <table> avec les <tr> et <td> qui vont avec une DataTable qu'on lui passe en paramètre dans le constructeur et un ToString surchargé pour me renvoyer ma belle table avec le html généré automatiquement. Avantages : uniformisation dans le site internet, réutilisabilité dans d'autres applications, facilité pour afficher des données sous forme de tableau..

    et bon, comme parfois je veux que certaines données du tableau aient un <a href> j'ai besoin que les données de ma DataTable soient modifiées avant d'être passées à ma belle classe qui me génère mon <table>.. Or, pas possible de faire un a href sur des int32 par exemple.. Donc ça serait mieux que je puisse choper mes données de ma base de données en String directement, d'où ma question.

    sinon tant pis, je me fais une méthode de classe qui permet de définir une colonne avec des a href avec l'index de la colonne dans la DataTable, c'est faisable mais bon ça se compliquera si je veux mettre des variables d'url dans le a href.. enfin voila..

    si quelqu'un a une idée merci..

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 168
    Points : 123
    Points
    123
    Par défaut
    Juste une question, la fonction qui te renvoi ton tableau HTML, elle renvoie quoi ? (en terme de type).

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 224
    Points : 99
    Points
    99
    Par défaut
    elle me renvoie un String..
    un String de tout le html de mon tableau..

    j'utilise ensuite un Response.Write de mon String ainsi récupérer pour afficher un tableau automatiquement générer à partir d'une DataTable.

  6. #6
    Membre régulier
    Profil pro
    Inscrit en
    Août 2002
    Messages
    168
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2002
    Messages : 168
    Points : 123
    Points
    123
    Par défaut
    D'accord, donc tout au long de ta fonction tu créés un String.

    Je ne connais pas tout, mais j'ai toujours un peu de mal à voir pourquoi tu souhaites une table tout en String.

    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
    public function (byval dt as datatable) as string
    dim html as string = string.empty
    html = "<table>"
    for each dr as dt.rows
      dim line as string = string.empty
      line = "<tr>"
      for each dc as dt.columns
        line += "<td>" & dr(dc.columnname).tostring & "</td"
      next
      line += "</tr>"
     
      html += line
    next
    html += "</table>"
     
    return html
    end function
    Je procéderais ainsi, maintenant tu dois avoir tes raisons de faire comme tu le fais. Tu crées des links sur quel champ ?

  7. #7
    Membre régulier
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    224
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 224
    Points : 99
    Points
    99
    Par défaut
    ReBonjour Alexandre,

    mille mercis pour ton aide..

    je code en C# pour ma part..

    sinon pour générer mon tableau j'y arrive bien.
    ça me donne un truc pas mal, et je paramètre même les largeur de cellules ou les styles css en options. Je compte rendre ma classe pas mal paramètrable en fait. Ca sera ensuite un gain de temps énorme sur mes futurs développements car j'aurai une classe qui me génèrera des tableaux html très paramétrable et avec seulement une dizaine de ligne de code.

    Sinon pour répondre à ta question je veux pouvoir créer des links sur n'importe quels champs. Donc je m'étais dit que soit il fallait faire les links sur la DataTable avant de passer la DataTable à ma classe (d'où mon besoin de récupérer mes données de BDD en string directement), soit permettre cela dans une méthode de ma classe (m'oblige à peaufiner ma classe et me creuser la tête).

    Imagine par exemple un tableau avec des colonnes id,nom, prenom et quand on clique sur le nom ça t'envoie sur une page qui affiche le détail de la personne. donc il me faut un ?id= dans l'url.
    Mais les links pourraient être dans d'autres champs dans certains cas avec pas forcément que un id comme variable d'url.

    merci

Discussions similaires

  1. Réponses: 3
    Dernier message: 01/08/2008, 10h58
  2. Réponses: 4
    Dernier message: 17/07/2008, 17h15
  3. Récupérer des données dans une phrase txt
    Par sophie78 dans le forum MATLAB
    Réponses: 20
    Dernier message: 05/07/2007, 18h27
  4. [RegEx] Récupérer des données dans une page Web
    Par Pragmateek dans le forum Langage
    Réponses: 8
    Dernier message: 24/05/2006, 20h44
  5. Récupérer des données dans une page HTML
    Par newdelirium dans le forum Langage
    Réponses: 3
    Dernier message: 26/10/2005, 20h18

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