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

Windows Forms Discussion :

[C#][DataSet]Trier un dataset


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé Avatar de arthenius
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2005
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 107
    Par défaut [C#][DataSet]Trier un dataset
    Bonjour,

    voila j'explique mon problème, je parcours un dataset qui est dans un datagrid, si l'utilisateur coche une case d'une des lignes du dataset je genere une facutre avec toutes les lignes selectionnés.

    jusque la tout va bien, seulement voila lors de la generation je parcours donc mon premier dataset, si la case est cocher j'injecte chaque ligne dans un autre dataset (ds_A_Facturer)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    foreach(DataRow row in ds.TS_VENTE.Rows)
    {
        if(Convert.ToBoolean(row["A_FACTURER"]))
        {
            DataRow newRow = ds_A_Facturer.TS_VENTE.NewRow();
            newRow["DVNUM"] = row["DVNUM"];
            newRow["FCNUM"] = row["FCNUM"];
        //............				      
            ds_A_Facturer.TS_VENTE.Rows.Add(newRow);
        }
    }
    Ensuite je parcours ce dataset et je genere mes lignes de détails que je rajoute dans mon dataset de facture qui me permet de faire l'update

    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
    foreach(DataRow row_detail in ds_A_Facturer.TS_VENTE.Rows)
    {
        ds_Facture.T_DETFACT.Rows.Clear();
        DataRow newRowDetail = ds_Facture.T_DETFACT.NewRow();
    							
        newRowDetail["DFCNUM"] = Guid.NewGuid();
        newRowDetail["FCNUM"] = _FCNUM;
        _ARTNUM = (Guid)row_detail["ARTNUM"];
        newRowDetail["ARTNUM"] = _ARTNUM;
        newRowDetail["DFCQTE"] = row_detail["DVQTE"];
        newRowDetail["DFCLIB"] = row_detail["DVLIB"];
        newRowDetail["DFCREL"] = 0;
        newRowDetail["DFCPU"] = row_detail["DVPRXA"];
        //............
        ds_Facture.T_DETFACT.Rows.Add(newRowDetail);
    
        build.DataAdapter.Update(ds_Facture.T_DETFACT);
    }
    En résumé j'aimerais pouvoir trier mes inserts en fonction de mon libelle
    afin que sur ma facture j'ai mes libellés (DVLIB) qui se suivent....
    et donc sur mon deuxieme foreach parcourir mon ds_a_facturer dans l'ordre de mon libelle...et pas au petit bonheur la chance comme c'est le cas actuellement...

  2. #2
    Membre éprouvé Avatar de arthenius
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Mars 2005
    Messages
    107
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Éditeur de logiciels

    Informations forums :
    Inscription : Mars 2005
    Messages : 107
    Par défaut
    un vieux sage a dis "Avant de dormir, pose toi une question...au petit matin la réponse tu auras..."

    En fait il suffisait d'utiliser la fonction Select sur ma table en mettant une condition tjs vrai ("DVLIG =>0") et mon tri...


    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
     
    foreach(DataRow row_detail in ds_A_Facturer.TS_VENTE.Select("DVLIG >= 0", "DVLIG"))
    {
        ds_Facture.T_DETFACT.Rows.Clear();
        DataRow newRowDetail = ds_Facture.T_DETFACT.NewRow();
     
        newRowDetail["DFCNUM"] = Guid.NewGuid();
        newRowDetail["FCNUM"] = _FCNUM;
        _ARTNUM = (Guid)row_detail["ARTNUM"];
        newRowDetail["ARTNUM"] = _ARTNUM;
        newRowDetail["DFCQTE"] = row_detail["DVQTE"];
        newRowDetail["DFCLIB"] = row_detail["DVLIB"];
        newRowDetail["DFCREL"] = 0;
        newRowDetail["DFCPU"] = row_detail["DVPRXA"];
        //............
        ds_Facture.T_DETFACT.Rows.Add(newRowDetail);
     
        build.DataAdapter.Update(ds_Facture.T_DETFACT);
    }

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

Discussions similaires

  1. Trier un DataSet
    Par Mario Rousson dans le forum VB.NET
    Réponses: 12
    Dernier message: 13/11/2011, 19h35
  2. [DataSet] IDENTITY_INSERT avec DataSet
    Par Kelpan dans le forum Accès aux données
    Réponses: 9
    Dernier message: 30/03/2008, 00h26
  3. Réponses: 6
    Dernier message: 23/11/2007, 12h18
  4. [DATASET]Concaténation de dataset
    Par ludovic85 dans le forum C#
    Réponses: 4
    Dernier message: 12/03/2007, 13h52
  5. [VB.NET 1.1] Trier un dataset
    Par toniolol dans le forum Windows Forms
    Réponses: 4
    Dernier message: 07/02/2006, 17h10

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