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

ASP.NET Discussion :

Import DataRow[] dans un DataTable


Sujet :

ASP.NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Par défaut Import DataRow[] dans un DataTable
    bonjour,
    j'ai un petit problème qui va certainement vous paraitre tout simple...
    voila, je récupère un DataRow[] avec ceci:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataRow[] rows = Explt.Select("VISIBLE="+Visible);
    Et je voudrais faire un cast ou l'importer dans un DataTable. J'ai fais ceci:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
     
     DataRow[] rows = Explt.Select("VISIBLE="+Visible);
            GestionDR.EXPLOITANTSDataTable toto = new GestionDR.EXPLOITANTSDataTable();
            for (int i = 0; i < rows.Length; i++)
            {
                toto.AddEXPLOITANTSRow((GestionDR.EXPLOITANTSRow)rows[i]);
            }
            return toto;
    Et je récupère l'erreur:"This row already belongs to another table"
    Après quelques recherches j'ai vu qu'il faut en fait faire un clone() puis un importRow mais
    1/ Je ne comprend pas le fondement de ces actions
    2/ Du coup, ca marche pas et je suis incapable de savoir pourquoi

    J'ai quand même essayé d'appliquer sans tout comprendre:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    DataRow[] rows = Explt.Select("VISIBLE="+Visible);
            GestionDR.EXPLOITANTSDataTable toto = new GestionDR.EXPLOITANTSDataTable();
     
            toto = (GestionDR.EXPLOITANTSDataTable)rows.Clone();
     
            for (int i = 0; i < rows.Length; i++)
            {
                toto.ImportRow(rows[i]);
            }
            return toto;
    Et je me retrouve avec un probleme de cast "unable to cast row[] to GestionDR.EXPLOITANTSDataTable"

    Quelqu'un pourrait-il m'éclaircir les idées, m'expliquer ou me filer un tuto?
    Merci d'avance...

  2. #2
    Membre du Club
    Inscrit en
    Mai 2008
    Messages
    8
    Détails du profil
    Informations forums :
    Inscription : Mai 2008
    Messages : 8
    Par défaut
    Bon, au final je me suis pris la tête pour rien:
    Voila la methode qui prend une datatable en entrée, la trie selon le paramètre "visible" et renvoie une nouvelle datatable...
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    [System.ComponentModel.DataObjectMethodAttribute(System.ComponentModel.DataObjectMethodType.Select, false)]
        public GestionDR.EXPLOITANTSDataTable SelectVisibles(GestionDR.EXPLOITANTSDataTable Explt, bool Visible)
        {
     
            DataRow[] rows = Explt.Select("VISIBLE="+Visible);
            GestionDR.EXPLOITANTSDataTable toto = new GestionDR.EXPLOITANTSDataTable();
            for (int i = 0; i < rows.Length; i++)
            {
                toto.ImportRow(rows[i]);
            }
            return toto;
        }

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

Discussions similaires

  1. Réponses: 5
    Dernier message: 04/11/2010, 15h20
  2. Réponses: 3
    Dernier message: 19/07/2006, 14h28
  3. [C#] Modifier une valeur dans une DataTable
    Par Scorff dans le forum ASP.NET
    Réponses: 2
    Dernier message: 23/05/2005, 10h45
  4. [VB.NET] Suppression de ligne dans un DataTable
    Par seemax dans le forum Windows Forms
    Réponses: 7
    Dernier message: 06/05/2004, 14h19
  5. Réponses: 2
    Dernier message: 20/02/2004, 08h47

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