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 :

Problème copie de colonne dataset/datatable


Sujet :

C#

  1. #1
    Candidat au Club
    Profil pro
    Inscrit en
    Février 2013
    Messages
    3
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2013
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Problème copie de colonne dataset/datatable
    Bonjour à tous, je viens poster ici car j'ai actuellement un problème en C# sur Visual Studio.

    Je dois remplir un objet 'DataGridView' à l'aide d'une datatable qui est elle même rempli de plusieurs colonnes, je trouve ces colonnes dans des tables de mon DataSet, hors j'obtiens le message d'erreur suivant : "La colonne 'nomcolonne' appartient déjà à un autre DataTable". En cherchant un peu sur google j'ai trouvé que c'est parce qu'une instance de DataColumn ne peut pas appartenir à deux DataTable en même temps. Seulement je ne sais pas comment faire autrement que comme ça.

    Voici mon code :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    DataSet dslocal = new DataSet();
    RemplirRequete(requete, dslocal, connec, "Produits");
    DataColumn dc = dslocal.Tables["Produits"].Columns["numProd"];
    DataTable dt = new DataTable("TableProduits");
    dt.Columns.Add(dc);
    DataGridViewProduit.DataSource = dt;
    J'ai essayé avec 'copy' aussi mais sans grand succès, si quelqu'un à une idée, cela m'aiderait beaucoup.

    Je vous remercie de votre aide
    Heart

  2. #2
    Membre averti
    Homme Profil pro
    Consultant fonctionnel
    Inscrit en
    Août 2010
    Messages
    98
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : Irlande

    Informations professionnelles :
    Activité : Consultant fonctionnel
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Août 2010
    Messages : 98
    Points : 318
    Points
    318
    Par défaut
    Si j'ai bien compris ton code , tu veux récupérer ta table "Produits" pour n'afficher dans ton DataGridView que la colonne nom produit.

    Si c'est bien cela, j'aurais procédé de la façon suivante :


    1. Récupération de ta table via la méthode RemplirRequete
    2. Création d'une vue depuis cette table
    3. Création d'une table depuis cette vue ne contenant que la colonne NumProd
    4. Alimenter ton DataGridView depuis cette nouvelle table



    Ce qui donnerait quelque-chose comme le code suivant :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    DataSet dslocal = new DataSet();
    RemplirRequete(requete, dslocal, connec, "Produits");
    System.Data.DataView vue = dslocal.Table[0].DefaultView;
    DataTable tableCodeProduit = vue.ToTable(false, {"NumProd"});
    tableCodeProduit.Columns["NumProd"].ColumnName = "Code Produit";
    DataGridViewProduit.DataSource = tableCodeProduit ;

Discussions similaires

  1. Réponses: 3
    Dernier message: 07/10/2011, 20h21
  2. [VB.NET] Problème ajout de colonne dans datatable
    Par tssi555 dans le forum VB.NET
    Réponses: 1
    Dernier message: 21/01/2010, 09h16
  3. [VBA-E][debutant] création de fichiers & copie de colonnes
    Par Mathusalem dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 10/05/2006, 15h23
  4. Problème avec redimentionnement colonne dbgrid
    Par Oluha dans le forum Bases de données
    Réponses: 1
    Dernier message: 10/10/2005, 11h19
  5. copy de colonne
    Par marsupilami34 dans le forum Requêtes
    Réponses: 2
    Dernier message: 19/08/2005, 20h37

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