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

VC++ .NET Discussion :

[C++.NET] Relation entre 2 colonnes de mon data


Sujet :

VC++ .NET

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    122
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 122
    Par défaut [C++.NET] Relation entre 2 colonnes de mon data
    Bonjour à tous,
    Alors voila la chose, j'ai un data avec 2 colonnes, je voudrais que lorsque je selectionne (par le code) une valeur se trouvant dans ma 1ere colonne, j'obtiens la valeur de ma 2eme colonne.

    Exemple:
    Si dans ma 1ere colonne j'ai "jean" et bien je veux que cela me renvoit ce qui se trouve dans la 2eme colonne c'est a dire son age "20".

    Faut il faire des relations ou je ne sais quoi?
    Je patauges.
    Comment faire? Avez vous des idees?

    Merci @++

  2. #2
    Membre chevronné
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    324
    Détails du profil
    Informations personnelles :
    Âge : 39
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 324
    Par défaut
    Alors voila la chose, j'ai un data avec 2 colonnes
    DataSet ?
    DataGridView ?
    DataAdapter ?

  3. #3
    Membre confirmé
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    122
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 122
    Par défaut
    Excusez moi pour le manque de precision:
    1 dataset
    8 datatables
    1 datagrid

    Ca sera pareil pour toutes les datatables.

  4. #4
    Membre expérimenté
    Profil pro
    Inscrit en
    Mai 2005
    Messages
    238
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mai 2005
    Messages : 238
    Par défaut
    Je pense que tu doit pouvoir récupérer la ligne séléctionné.
    Si tu gère les evenement genre CellClick :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    private void DG_Detail_DP_CellClick(object sender, DataGridViewCellEventArgs e)
    {
         e.rowIndex // le numero de la ligne
    }
    et après il te suffit de récupérer la bonne cellule dans la colonne choisie


    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
     
    MaValeur = MonDataGrid.Rows[e.RowIndex].Cells[1];
    Dans l'exemple je récupère la valeur de la seconde colonne.

    Bonne chance

  5. #5
    Membre confirmé
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    122
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 122
    Par défaut
    Ca doit marcher ta solution mais je ne selectionne pas de cellule vu que je travaille sur une autre form que celle ou ce trouve le datagrid.

  6. #6
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 160
    Par défaut
    Ton problème est très vaguement décrit mais si je comprends bien, tu as la valeur d'une colonne et tu veux obtenir la valeur de la 2e colonne correspondate. Si c'est le cas, tu cherches dans la DataTable concernée :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DataRow dr = TaDataTable.Select("Nom1ereColonne = Valeur1ereColonne");
    object CeQueTuCherches = dr["Nom2emeColonne"];
    Soit plus précis dans tes decriptions stp. J'espère t'avoir aidé, courage !

  7. #7
    Membre confirmé
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    122
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 122
    Par défaut
    Oki merci pour les reponses.
    Avec un exemple concret ca devrait mieux passer.

    Alors j'ai une colonne sappelant "distance" et l'autre "precipitation" apres avoir effectuer certains calculs j'ai un resultat qui correspond a ma distance.
    Si par exemple mon resultat est egal a 15, je dois aller chercher dans la colonne "distance" la valeur correspondant a mon resultat (15) puis prendre la valeur se trouvant dans la colonne "precipitation" en fonction de distance.

    Jespere avoir ete assez clair et precis.

    Merci @++

  8. #8
    Membre confirmé
    Profil pro
    Inscrit en
    Novembre 2003
    Messages
    160
    Détails du profil
    Informations personnelles :
    Âge : 43
    Localisation : France, Bouches du Rhône (Provence Alpes Côte d'Azur)

    Informations forums :
    Inscription : Novembre 2003
    Messages : 160
    Par défaut
    Très bien.

    J'imagine que ces enregistrements, ces lignes sont stockées dans une de tes DataTables de ton DataSet. Je supposerai que cette DataTable s'appelle dtPrecipitations (à remplacer par le nom que tu as donné, bien sur). Tu n'as qu'a faire :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    DataRow drCherchee = dtPrecipitations.Select("distance = 15");
    int iPrecipitationQueTuCherches = Convert.ToInt32(drCherchee["precipitation"]);
    Voilà. J'espère que ca va fonctionner.

  9. #9
    Membre confirmé
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    122
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 122
    Par défaut
    Merci de m'avoir repondu et excusez moi davoir repeter la meme question.
    Faut me comprendre c'est le matin .
    @++

  10. #10
    Membre confirmé
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    122
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 122
    Par défaut
    J'ai tester un autre truc
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    <div style="text-align: left;">DataRow *drCherchee = __try_cast<DataRow*>(Table1->Select("Distance=15"));
    DtaColumn * myCol = __try_cast<DataColumn*>(Table1->Select("Precipitation));
    float valeurCherchee = Single::Parse(drCherchee->get_Item(myCol)->ToString());
    MessageBox::Show(Convert::ToString(valeurCherchee));</div>
    Je pensais que ca allait fonctionner mais meme pas, j'ai une erreur a son lancement:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    le cast specifie nest pas valide
    Mais lorsque je ne fais pas de cast c'est la folie jai trop trop derreur a la compilation.

    Aidez moi SVP

  11. #11
    Membre actif Avatar de netomin
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 81
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    DataRow *drCherchee = __try_cast<DataRow*>(Table1->Select("Distance=15"));
    Tu ne peux pas utiliser cette ligne de code avec comme parametre (Table1->Select("Distance=15")) car comme ta du voir dans l'exemple que je t'avais donné le parametre doit être un IEnumerator.

    C'est logique que cela te donne une erreur car le cast est impossible.

    Par rapport à ta question:

    Si tu selectionne une cellule d'un datagrid tu peux faire, par exemple si t'as un Datagrid1:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    
    DataGridCell __gc *myCell;
    myCell = __box(dataGrid1->CurrentCell);
    
    Et après pour prendre la valeur correspondante dans ta datatable:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    
    DataRow* myRow = tonDataSet1->TaTable1->get_Rows()->get_Item(myCell->get_RowNumber());
    textBox1->Text=myRow->get_Item(myCell->get_ColumnNumber())->ToString();
    
    Et pour l'autre colonne que t'a besoin de recuperer la valeur c à d "Precipitation" tu met le numero de colonne correspondant à la place de (myCell->get_ColumnNumber()).

    J'éspère avoir été simple.

    à +

  12. #12
    Membre confirmé
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    122
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 122
    Par défaut
    Je ne peux pas utiliser mon datagrid pour effectuer ma selection il faut que je travaille directement avec mes 8 datatables.

    Comment je fais puisque avec les datatables je peux pas utiliser "Cell".

  13. #13
    Membre actif Avatar de netomin
    Profil pro
    Inscrit en
    Décembre 2005
    Messages
    81
    Détails du profil
    Informations personnelles :
    Âge : 45
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Décembre 2005
    Messages : 81
    Par défaut
    Tu dois juste faire un boucle pour parcourir les lignes de tes tables et comparer la valeur que tu cherches avec la valeur de la colonne apartenant à chaque ligne.
    Je m'explique:

    Le code posté avant tu le met dans un boucle et à la place de utiliser les index de myCell de ton datagrid (pour les lignes) tu utilises le compteur i par exemple d'un boucle For...Next, et pour les colonnes tu utilises le nom de ta variable Distance ou son numero correspondant de colonne.

    à +

  14. #14
    Membre confirmé
    Étudiant
    Inscrit en
    Avril 2006
    Messages
    122
    Détails du profil
    Informations professionnelles :
    Activité : Étudiant

    Informations forums :
    Inscription : Avril 2006
    Messages : 122
    Par défaut
    Je suis en train de developper le code qui correspond a la question, des que j'ai finis je le poste.
    Il servira surement a d'autres personnes.

    @+++

Discussions similaires

  1. Réponses: 5
    Dernier message: 29/05/2015, 14h51
  2. [AC-2003] les relations entre tables access avec un code vb.net
    Par Walid(Tun) dans le forum VBA Access
    Réponses: 5
    Dernier message: 13/10/2010, 22h31
  3. [CLR .Net 2]Relation entre GetHashCode() et Equals()
    Par Mose dans le forum Framework .NET
    Réponses: 10
    Dernier message: 24/11/2006, 19h03
  4. Réponses: 4
    Dernier message: 22/08/2006, 11h20
  5. [Relations] afficher les relations entre 2 tables
    Par dzincou dans le forum PostgreSQL
    Réponses: 5
    Dernier message: 14/01/2004, 17h07

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