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 :

Dataset, récupérér la ligne en cours


Sujet :

Windows Forms

  1. #1
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 156
    Points : 54
    Points
    54
    Par défaut Dataset, récupérér la ligne en cours
    Bonjour à tous,

    cette question va peut-être sembler stupide aux yeux de certains, mais je voudrais récupérer la ligne en cours dans mon dataset.
    J'utilise un dataset typé avec un bindingnavigator et j'ai placé des textbox bindées dans ma form.
    Je souhaite changer une valeur de mon dataset dans la ligne en cours, mais c'est une valeur qui n'apparait pas dans une textbox.
    J'ai essayé ceci, mais ça me change forcément la première ligne de mon dataset complet :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
     
    MonDataSet.Matable[0].MonChamp = 5;
    Donc comment remplacer l'indice [0] de ma table?

    Merci d'avance pour votre aide

    Penchu

  2. #2
    Membre actif
    Inscrit en
    Août 2006
    Messages
    381
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 381
    Points : 252
    Points
    252
    Par défaut
    Bonjour,

    il n'y a pas de curseur dans un DataSet. Tu ne peux donc pas récupérer la valeur en cours directement par le DataSet.
    Plusieurs solutions s'offrent à toi. Tu utilises un BindingSource qui va gérer ça très facilement d'autant plus que tu utilises un BindingNavigator, ou alors tu utilises le BindingContext de la form.

    A bientôt

  3. #3
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 156
    Points : 54
    Points
    54
    Par défaut
    Heu, oui, j'ai déjà regardé au niveau du bindingsource, mais je ne trouve pas de propriété qui me permettrait de faire ça...

    J'y regarde, mais pour l'instant, je cale là dessus, et google n'est pas mon ami pour ça, il ne m'aide pas beaucoup

  4. #4
    Membre du Club
    Profil pro
    Inscrit en
    Janvier 2007
    Messages
    46
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2007
    Messages : 46
    Points : 43
    Points
    43
    Par défaut Current
    Salut,
    Regarde le Current du bindSource

    chez ça donne :
    private void m_nbsrcReportPages_CurrentChanged(object sender, EventArgs e)
    {
    m_oCurrentReportPage = (ReportPage)m_bsrcReportPages.Current;
    if (m_oCurrentReportPage != null)
    {
    ...}}

    tcho

  5. #5
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 156
    Points : 54
    Points
    54
    Par défaut
    Je ne te suis pas là.
    Ton reportPage, c'est ton datatable?
    Et une fois que j'ai ça, je fais quoi pour connaitre ma ligne courante dans le dataset? Car je comprends pas là.

  6. #6
    Membre actif
    Inscrit en
    Août 2006
    Messages
    381
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 381
    Points : 252
    Points
    252
    Par défaut
    Bonjour,

    le plus simple plutôt que de t'expliquer est que je te file les liens des WebCasts Microsoft sur le DataBinding Avance.

    http://www.microsoft.com/downloads/d...displaylang=fr

    http://www.microsoft.com/france/even...ntID=118764981

    Tu comprendras beaucoup mieux les liaisons de données ensuite.

    A bientôt

  7. #7
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 156
    Points : 54
    Points
    54
    Par défaut
    Ok, je te remercie,

    j'espère trouver ma solution la dedans.

    A + Et merci

  8. #8
    Membre actif
    Inscrit en
    Août 2006
    Messages
    381
    Détails du profil
    Informations forums :
    Inscription : Août 2006
    Messages : 381
    Points : 252
    Points
    252
    Par défaut
    Oui c'est sûr que tu vas la trouver.
    Sinon immédiatement voici comment tu peux faire:

    tu crée un BindingSource pour lequel tu définis les propriétés suivantes:

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
     
    TonBindingSource.DataMember = "TonDataTable";
    TonBindingSource.DataSource = "TonDataSet";

    Ensuite, tu lies ton BindingSource à ton BindingNavigator.
    Quand tu souhaites récupérer l'élément courant sélectionné, tu peux utiliser la propriété Current

    Si tu utilises des DataSet Typés, cela donne, en supposant que TonDataRow est le type des lignes qui constituent ton DataTable:

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    TonDataRow rowCurrent = ((DataRowView)TonBindingSource.Current).Row as TonDataRow;

    Si tu n'utilises pas de DataSet typé cela donne:

    Code c# : Sélectionner tout - Visualiser dans une fenêtre à part
    DataRow rowCurrent = ((DataRowView)(TonBindingSource.Current).Row;

    En espérant que cela t'aide immédiatement.
    Regardes les webcasts, tu vas apprendre plein de choses très interessante et notamment le CurrencyManager dont je n'ai pas parlé sur ce post mais qui est le composant qui fait tout.

    A bientôt

  9. #9
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 156
    Points : 54
    Points
    54
    Par défaut
    Je vais tester ton code ce soir car maintenant, je suis sur autre chose à finir cette après midi, et je te tiens au courant;

    Merci encore pour ton aide et pour le lien des webcasts. C'est bien d'apprendre par soi-même mais une aide comme ça et des conseils comme ça, ça apporte beaucoup et ça fait évoluer.

  10. #10
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 156
    Points : 54
    Points
    54
    Par défaut
    Avec ton code, ça marche nickel.
    J'avais également voulu mettre l'id d'une colonne à NULL, mais en faisant rowCurrent.IDCouleur1 = DBNull.Value;, ça ne fonctionnait pas.
    Par contre, comme ma combo est bindée, en cherchant un peu dans ma petite tête, je me suis dis de mettre comboboxIDCouleur1.SelectedItem = null; et ça fonctionne.

    Donc merci à toi.
    ps. Hier soir, j'ai regardé qq webcasts pour m'endormir, et c'est pas mal expliqué et pas mal intéressant, malgré que je n'ai vu pour l'instant que les bases que je connaissais déjà, sauf le currencyManager que je n'avais jamais utilisé (je savais juste qu'il existait, mais ça s'arrête là).

  11. #11
    Membre confirmé

    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    481
    Détails du profil
    Informations personnelles :
    Âge : 42
    Localisation : France, Paris (Île de France)

    Informations forums :
    Inscription : Janvier 2006
    Messages : 481
    Points : 616
    Points
    616
    Par défaut
    Bonjour Penchu,
    Si tu as eu réponse a ta question merci de nous le signalé par la balise
    J'ai cru comprendre que tu avais une autre question, pour des raisons de lisibilité (et surtout pour avoir de plus grande chance de réponse) je t'encourage à ouvrir une nouvelle discussion propre a cette question

    Bonne journée
    Notalp

  12. #12
    Membre du Club
    Inscrit en
    Mars 2005
    Messages
    156
    Détails du profil
    Informations forums :
    Inscription : Mars 2005
    Messages : 156
    Points : 54
    Points
    54
    Par défaut
    Heu, non, je n'ai plus de questions votre honneur .
    Sorry pour la balise résolu. Je m'en charge tout de suite

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

Discussions similaires

  1. Réponses: 8
    Dernier message: 16/01/2008, 16h15
  2. dataset recharger une ligne
    Par Mathieu.Nanoux dans le forum Accès aux données
    Réponses: 2
    Dernier message: 12/06/2007, 12h07
  3. N° de ligne en cours dans une requête
    Par efrancilien dans le forum Requêtes
    Réponses: 1
    Dernier message: 10/11/2006, 10h03
  4. ligne en cours
    Par Mors_Ubyte dans le forum Access
    Réponses: 4
    Dernier message: 15/03/2006, 22h06
  5. Récupérer la ligne en cours dans un DBGrid
    Par PH69 dans le forum Bases de données
    Réponses: 2
    Dernier message: 28/07/2005, 16h59

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