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 :

Comment récupérer les données d'une colonne de dataTable dans un Array ? [Débutant]


Sujet :

C#

Vue hybride

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

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2013
    Messages : 42
    Par défaut Comment récupérer les données d'une colonne de dataTable dans un Array ?
    Bonjour tout le monde !

    Je dispose d'une table nommée "nutrim" , avec une colonne en format texte nommée "nutriments"

    Je souhaite récupérer les données de cette colonne nutriments dans un Array

    Quel code mettre en oeuvre ?

    (pour l'instant, j'ai établi la connexion à la base, créé un dataTable, créé un dataAdapteur.)

    Merci pour votre aide.
    Patrick

  2. #2
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 536
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 536
    Par défaut
    en cherchant, on trouve ça:
    https://stackoverflow.com/questions/...-c-sharp-array

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string[] ar_nutri= dt.AsEnumerable().Select(r => r["nutriments"].ToString()).ToArray();
    2 autres façons plus "classiques" (avec des boucles)
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
     
    //1ere façon
    List<String> stringArr = new List<String>();
    for (int a = 0; a < dt.Rows.Count; a++)
    {
        stringArr.Add(dt.Rows[a]["name"].ToString());
    }
    string tab[] = stringArr.ToArray();
    //2de façon
    string[] tabbis=new string[0];
    for (int a = 0; a < dt.Rows.Count; a++)
    {
        tabbis=tabbis.Append(dt.Rows[a]["name"].ToString()).ToArray();
    }

  3. #3
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2013
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2013
    Messages : 42
    Par défaut
    Merci umfred !

    Cela fonctionne.

    Maintenant, j'aimerais mettre cet Array dans une requette d'insertion SQL.

    Je vais poser la question dans le forum SQL.

    Encore merci !

  4. #4
    Membre Expert
    Profil pro
    Inscrit en
    Septembre 2010
    Messages
    1 536
    Détails du profil
    Informations personnelles :
    Âge : 46
    Localisation : France

    Informations forums :
    Inscription : Septembre 2010
    Messages : 1 536
    Par défaut
    euh tu veux quoi comme type de requête ? vu que tu as tous les éléments d'une colonne, et une insertion ajoute des lignes.

    ça pourrait passer par un Concat (il me semble) ou une boucle selon le besoin d'insertion.

    On te renverra ici à un moment puisque c'est une requête SQL dans un programme C#.

  5. #5
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2013
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2013
    Messages : 42
    Par défaut
    Voici ma requête :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    command.CommandText = "INSERT INTO nouv_alim ( ici je veux mon Array ) VALUES ('" + nomTextBox.Text + "', " + labelKcal.Text + ", " + ProtidesBox.Text + ", " + GlucidesBox.Text + ", " + LipidesBox.Text + ")";

    Actuellement je teste avec seulement 5 éléments, mais à terme, il y en aura unne trentaine. D'où le besoin de faire des Array, aussi bien pour les champs que pour les values.
    Sinon, cela me ferait une requête très longue.

  6. #6
    Membre averti
    Homme Profil pro
    Webmaster
    Inscrit en
    Février 2013
    Messages
    42
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Alpes Maritimes (Provence Alpes Côte d'Azur)

    Informations professionnelles :
    Activité : Webmaster
    Secteur : Boutique - Magasin

    Informations forums :
    Inscription : Février 2013
    Messages : 42
    Par défaut
    Voilà, j'ai réussi.

    Je convertis mon array " ar_nutri" en chaine de caractères avec un virgule entre chaque élément :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    var str1 = String.Join(", ", ar_nutri);
    Ma requête devient :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    command.CommandText = "INSERT INTO nouv_alim ("+str1+" ) VALUES ('" + nomTextBox.Text + "', " + labelKcal.Text + ", " + ProtidesBox.Text + ", " + GlucidesBox.Text + ", " + LipidesBox.Text + ")";
    Cela fonctionne parfaitement.
    Il me reste à faire l'équivalent pour les valeurs.

    Pour l'instant il n'y a que 5 colonnes et 5 valeurs, mais à terme, il y en aura une trentaine...
    C'est pour quoi j'utilise des Array, faute de quoi, ma requête serait vraiment très longue...

    Encore merci pour votre aide !

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. comment copier les donnés d'une table vers un fichier exel
    Par 21247692 dans le forum Bases de données
    Réponses: 8
    Dernier message: 09/01/2009, 14h30
  2. Comment Afficher les donnes d'une BD dans WXGRID ?
    Par Dayssam dans le forum wxPython
    Réponses: 3
    Dernier message: 15/06/2008, 15h08
  3. comment parcourrir les champs d'une colonne
    Par vacknov dans le forum Macros et VBA Excel
    Réponses: 15
    Dernier message: 12/11/2007, 20h02
  4. Réponses: 2
    Dernier message: 15/05/2007, 10h34
  5. Comment compter les doublons d'une colonne?
    Par Dnx dans le forum Langage SQL
    Réponses: 8
    Dernier message: 07/11/2005, 10h50

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