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 :

[VS2008] liaison de données


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 958
    Par défaut [VS2008] liaison de données
    Bonjour,

    voici le code d'un formulaire de données (il affiche le champ "nom" d'une table qui comprend aussi le champ "id_histoire"):

    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
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
     
    Public Class frm_his
     
        Private Sub HistoireBindingNavigatorSaveItem_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles HistoireBindingNavigatorSaveItem.Click
            Me.Validate()
            Me.HistoireBindingSource.EndEdit()
            Me.TableAdapterManager.UpdateAll(Me.LivresDataSet)
     
        End Sub
     
        Private Sub frm_his_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
            'TODO: This line of code loads data into the 'LivresDataSet.histoire' table. You can move, or remove it, as needed.
            Me.HistoireTableAdapter.Fill(Me.LivresDataSet.histoire)
     
        End Sub
     
        Private Sub btn_choisir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_choisir.Click
     
            'synchronisation avec form1
            Me.HistoireBindingSource.EndEdit()
            Form1.tad_his.Update(Form1.ze_ds.histoire)
     
            'récupération de id_histoire en cours dans la fenêtre et modif dans cbo_auteur
            Dim ma_vue As DataRowView
            ma_vue = Me.NomTextBox.DataBindings.Item("Text").DataSource.current
            Dim ma_ligne As DataRow
            ma_ligne = ma_vue.Row
      ->   Form1.cbo_his.SelectedValue = ma_ligne.Item("id_histoire")
            Form1.cbo_his.Refresh()
     
            Me.Close()
     
        End Sub
     
        Private Sub btn_sortir_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btn_sortir.Click
     
            'synchronisation avec form1
            Me.HistoireBindingSource.EndEdit()
            Form1.tad_his.Update(Form1.ze_ds.histoire)
            Me.Close()
     
     
        End Sub
    End Class
    le formulaire affiche uniquement le champ nom et cette textbox est liée à "histoireBindingSource - nom". S'y ajoute un bindingNavigator que j'utilise pour ajouter un enregistrement.
    Je clique alors sur la disquette pour enregistrer l'enregistrement.
    Mais quand je reviens dans le formulaire principal (les deux boutons du form_histoire sont sortir qui ferme le form form_histoire et choisir qui est censé choisir le champ et fermer le form formHistoire); quand je reviens dans le formulaire principal donc, j'ai une combobox cbo_his qui devrait prendre la nouvelle valeur; or il ne s'afiche qu'un vide: rien n'est sélectionné. De plus, si je sors du programme et que je le relance, la valeur que j'ai ajoutée est bien dans la combobox.
    Je précise que la combobox est liée à la base de données:

    (extrait du formulaire principal
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
            cbo_his.DataSource = ze_ds
            cbo_his.DisplayMember = "histoire.nom"
            cbo_his.ValueMember = "histoire.id_histoire"
            cbo_his.DataBindings.Add("SelectedValue", ze_ds, "livre.id_histoire")
    La ligne où se situe les changements à faire est sûrement celle où j'ai placé une flèche.

    merci de votre attention,

    lolveley.

  2. #2
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 958
    Par défaut
    PS: dites-moi si ma demande d'aide est trop embrouillée, je la recommencerai!

    lolveley.

  3. #3
    Membre émérite
    Homme Profil pro
    Inscrit en
    Février 2006
    Messages
    565
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 52
    Localisation : France, Charente Maritime (Poitou Charente)

    Informations forums :
    Inscription : Février 2006
    Messages : 565
    Par défaut
    Ton problème vient du fait que tu as un dataset local dans chacun de tes formulaires qui sont en fait des instances de ton dataset global (le .xsd). Ainsi a chaque chargement de formulaire (dans la méthode load) tu remplis un dataset local par l'intermédiaire d'un TableAdapter avec la méthode "fill". Lorsque tu fais un update dans ton formulaire secondaire les données sont mise à jour en base et dans le dataset global mais pas dans le dataset local de ton formulaire principal, pour cela tu dois refaire un "fill" aprés ta méthode ShowDialog pour mettre a jour ton dataset local.

  4. #4
    Membre éprouvé
    Homme Profil pro
    Développeur .NET
    Inscrit en
    Janvier 2006
    Messages
    958
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 51
    Localisation : France, Moselle (Lorraine)

    Informations professionnelles :
    Activité : Développeur .NET
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2006
    Messages : 958
    Par défaut
    merci beaucoup, c'est très fort!

    lolveley.

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

Discussions similaires

  1. [VS2008] liaison de données
    Par olivier57b dans le forum Accès aux données
    Réponses: 4
    Dernier message: 01/06/2008, 14h39
  2. l'expert Liaison de données XML
    Par LN(a) dans le forum Delphi
    Réponses: 1
    Dernier message: 01/12/2006, 18h15
  3. pb Expert liaison de données XML
    Par gudul dans le forum Delphi
    Réponses: 3
    Dernier message: 14/08/2006, 00h47
  4. Où est l'Expert Liaison de données XML [BCB6]
    Par Colloc dans le forum C++Builder
    Réponses: 3
    Dernier message: 21/02/2005, 14h33
  5. Liaison de données - formulaires
    Par Bikey dans le forum Décisions SGBD
    Réponses: 2
    Dernier message: 21/10/2004, 15h05

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