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#] Récupération d'une ligne d'un DataView en c# [Débutant(e)]


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre à l'essai
    Inscrit en
    Janvier 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 5
    Par défaut [C#] Récupération d'une ligne d'un DataView en c#
    Bonjours à tous,

    Je suis débutant en c# et je suis confronté à un problème dont je ne trouve pas la solution. En effet, j'ai un dataview comportant les informations d'un produit, et dans ce dataview, je veux récupérer la ligne comportant le type de produit concerné afin de d'afficher dans mon dataview type produit, seulement celui concerné. Si quelqu'un à une solution, merci de me répondre.

  2. #2
    Membre confirmé

    Inscrit en
    Octobre 2002
    Messages
    139
    Détails du profil
    Informations forums :
    Inscription : Octobre 2002
    Messages : 139
    Par défaut
    SAlut,

    pour effectuer une "opération" de sélection avec un dataview, il faut utiliser la propriété rowfilter. Voici un exemple de la msdn en ligne
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
       DataView dv = new DataView();
     
       dv.Table = DataSet1.Tables["Suppliers"];
       dv.AllowDelete = true;
       dv.AllowEdit = true;
       dv.AllowNew = true;
       dv.RowFilter = "City = 'Berlin'"; //<---propriété a utilisé
       dv.RowStateFilter = DataViewRowState.ModifiedCurrent;
       dv.Sort = "CompanyName DESC";
     
       // Simple bind to a TextBox control
       Text1.DataBindings.Add("Text", dv, "CompanyName");
    voilou
    krest

  3. #3
    Membre à l'essai
    Inscrit en
    Janvier 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 5
    Par défaut
    merci krest pour ton aide mais le filtrage des données dans le dataview je sais le faire. Mon problème est la récupération d'un ligne dans un dataview pour ensuite, pouvoir utiliser la valeur obtenu afin de filtrer les données d'un autre dataview à l'aide de la propriété row_filter. Par exemple, j'ai un dataview Produit comportant le No du produit, son nom... le type de produit. Je veux récupérer la valeur du type de produit à l'aide d'une instruction que j'ignore. Merci de me répondre.

  4. #4
    Membre à l'essai
    Inscrit en
    Janvier 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 5
    Par défaut
    J'ai cherché sur le web et j'ai vu que pour récupérer une ligne dans un dataview l'instruction était la suivante
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     dataview(N°ligne)(Nom du champ)
    Malheuresement cette instruction un peu trop simple de marche pas. Un message s'affiche "nom du formulaire désigne 'champ' où 'méthode' était attendu"

    Si quelqu'un à une autre solution, merci de me répondre.

  5. #5
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Par défaut
    salut !

    As tu essayé de faire un
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DataRow dat = dataView.Find(le critere de recherche);
    ou si tu veux récup plusiere ligne :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    DataRow[] data = dataView.FindRow(Critere de recherche);
    voila

  6. #6
    Membre à l'essai
    Inscrit en
    Janvier 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 5
    Par défaut
    Merci pour ton aide dev01,

    J'ai essayé ce qui m'avait dis mais il me marque impossible de convertir la valeur de type int en datarow.

    Sa fait quelque jour que je cherche la solution pour pouvoir récupérer la valeur d'une ligne dans un dataview. Je suis actuellement bloqué dans mon programme puisque cette instruction doit être utilisé plusieurs fois dans mon logiciel afin de filter des informations.

    J'ai cherché sur le web des solutions mais je n'ai pas trouvé. C'est franchement plus simple de récupérer une ligne dans un dataset que dans un dataview. Merci de me répondre.

  7. #7
    Rédacteur
    Avatar de dev01
    Profil pro
    Inscrit en
    Mai 2004
    Messages
    2 451
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2004
    Messages : 2 451
    Par défaut
    oups

    Désolé ... la fonction Find renvois le numéro de lige de l'neregistrement dans le dataview ....

    ça donne ça :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    int number = dataView1.Find(critere de recherche);
     
    DataRow data = dataSet.Table["la table"].Row[number];
    en espérant ne pas etre encore planté ...

    Juste un truc encore : Avec cette méthode j'ai eu des comportement bizarre comme le fais qu'il ne me donne pas la bonne ligne. Cela est du au fait que le dataset et le dataview ne sont pas trié pareille donc un enregistrement en N ieme position dans le dataset sera peut etre en p ieme position dans le dataview . A toi de faire en sorte que les deux soit trié de la meme façon.

  8. #8
    Membre habitué
    Inscrit en
    Janvier 2005
    Messages
    11
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 11
    Par défaut
    Bonjour,

    as tu essayé, apres filtrage :

    dv[numLigne].Row["nomDeColonne"]

    ?

  9. #9
    Membre averti
    Inscrit en
    Mai 2003
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 14
    Par défaut
    Pour info voici quelques références sur l'utilisation d'un dataset

    un DataSet (ds) est composé de DataTable pour y acceder
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     DataTable table=ds.Tables[indice]
    un DataTable (ds) est composé de DataRow pour y acceder
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
         DataRow ligne=table.Rows[indice]
     
    ou 
     
        DataRow ligne=table.Rows["nom de ta ligne"]
    bon courage

    Si tu veux des exmples de code pour la manipulatio des dataset regarde dans MSDN

  10. #10
    Membre à l'essai
    Inscrit en
    Janvier 2005
    Messages
    5
    Détails du profil
    Informations forums :
    Inscription : Janvier 2005
    Messages : 5
    Par défaut
    J'ai enfin trouvé la solution à mon problème, c'est pas trop tôt.
    Voici le code pour récupérer une ligne dans un dataview.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
     
    			// Recherche de la position du critère de choix dans le dataview
    			int pos = dbDv1.Find(valeur de recherche);
     
    			// Recherche de la ligne 
    			string toto = dbDv1[pos].Row["champ de la table"].ToString();
     
    			// Filtrage des données dans l'autre dataview
    			dbDv2.RowFilter = "Champ de la table="+toto;
    Je vous remercie tous pour votre aide.

  11. #11
    Membre averti
    Inscrit en
    Mai 2003
    Messages
    14
    Détails du profil
    Informations forums :
    Inscription : Mai 2003
    Messages : 14
    Par défaut
    heureux de savoir que tu as trouvé ton bonheur

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

Discussions similaires

  1. Réponses: 3
    Dernier message: 29/10/2010, 15h10
  2. [XL-2007] Récupération d'une ligne entière après AutoFilter
    Par Mucsy dans le forum Macros et VBA Excel
    Réponses: 8
    Dernier message: 17/09/2009, 17h32
  3. [RegEx] Récupération dans une ligne de tableau
    Par nazoreen dans le forum Langage
    Réponses: 3
    Dernier message: 01/07/2009, 20h15
  4. récupération d'une ligne avec un select MAX(champ1)
    Par rdams dans le forum Requêtes
    Réponses: 8
    Dernier message: 03/07/2006, 10h33
  5. Requete entre 2 table et récupération d'une ligne
    Par lechevin dans le forum Langage SQL
    Réponses: 13
    Dernier message: 12/01/2006, 13h54

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