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

C# Discussion :

soucis de mise a jour Dataset et dataobjet


Sujet :

C#

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 362
    Par défaut soucis de mise a jour Dataset et dataobjet
    Bonjour a tous,

    J'ai un petit probleme avec mon appli. J'utilise une base de données .mdb dans laquelle je stocker des données clients.

    Mon appli permet d'ajouter/supprimer/modifier cette base de données. Elles est composée de 3 tables liées entre elles:

    - table "Clients"
    - table "Contact"
    - table "Intervention"

    Cette DB a été créée sous access ainsi que les liaisons entre les tables.

    Dans mon appli je cré donc un dataset (dataset1) qui recupere un client particulier et ces contacts et interventions associées.

    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
     
    strClientPath = Application.StartupPath + "\\Clients\\" + comboBox1.SelectedValue + "\\" + listBox2.SelectedItem.ToString();
                cn = new OleDbConnection(strAccessConn);
                cn.Open();
                // creation des string SQL
                string strSQLClientClientID = " select * from Client WHERE ClientID=" + ClientID;
                string strSQLContactClientID = " select * from Contact WHERE ClientID=" + ClientID;
                string strSQLInterventionClientID = " select * from Intervention WHERE ClientID=" + ClientID;
                // creation des dataadapters
                da1 = new OleDbDataAdapter(strSQLClientClientID, cn);
                da2 = new OleDbDataAdapter(strSQLContactClientID, cn);
                da3 = new OleDbDataAdapter(strSQLInterventionClientID, cn);
                // creation et remplissage du dataset
                dataset1 = new DataSet();
                da1.FillSchema(dataset1, SchemaType.Mapped, "Client");
                da1.Fill(dataset1, "Client");
                da2.FillSchema(dataset1, SchemaType.Mapped, "Contact");
                da2.Fill(dataset1, "Contact");
                da3.FillSchema(dataset1, SchemaType.Mapped, "Intervention");
                da3.Fill(dataset1, "Intervention");
                cn.Close();
    Ensuite le lie les differents éléments de ma form (textbox, combobox ect...) avec les différents champs des tables.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    textBox1.DataBindings.Add(new Binding("Text", dataset1, "Client.ClientName"));
    textBox2.DataBindings.Add(new Binding("Text", dataset1, "Client.ClientNumber"));
    richTextBox4.DataBindings.Add(new Binding("Text", dataset1, "Client.ClientAdress"));
    listBox1.DataSource = dataset1.Tables[1];
    listBox1.DisplayMember = dataset1.Tables[1].Columns["ContactNom"].ColumnName;
     .....
    Au final mes datatables de mon dataset contiennent:

    - datatable "Client": 1 seul enregistrement
    - datatable "Contact": 0 a n enregistrement
    - datatable "Intervention": 0 a n enregistrement


    jusque la pas de soucis j'ai bien les valeur des champs des datables de mon dataset qui sont mis a jour dans les textbox ect...

    Par contre quand je modifie une textbox, la valeur du champ correspondant dans la datatable de mon dataset semble être mise a jour, par contre l'état de la datarow correspondant reste a "unchanged"....

    du coup je ne peux pas faire la mise a jour de mon dataset car les modif ne sont pas mise a jour

    De plus sur mes datatables de mon dataset, je peux:

    - modifier des valeurs
    - supprimer ou ajouter des enregistrements sur mes datatables "Contact" et "intervention".

    Pour mettre a jour mon dataset, je dois créer une OleDBcommand pour chaque cas de figure? update, add, suppression?

    merci pour vos lumières

  2. #2
    Rédacteur/Modérateur


    Homme Profil pro
    Développeur .NET
    Inscrit en
    Février 2004
    Messages
    19 875
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 43
    Localisation : France, Paris (Île de France)

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

    Informations forums :
    Inscription : Février 2004
    Messages : 19 875
    Par défaut
    Citation Envoyé par waspy59 Voir le message
    Par contre quand je modifie une textbox, la valeur du champ correspondant dans la datatable de mon dataset semble être mise a jour, par contre l'état de la datarow correspondant reste a "unchanged"....
    Tu n'aurais pas laissé trainer un AcceptChanges quelque part ? Un appel à AcceptChanges remet l'état des lignes à Unchanged. En général on ne l'appelle pas explicitement, c'est le DataAdapter qui s'en charge.

  3. #3
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 362
    Par défaut
    Citation Envoyé par tomlev Voir le message
    Tu n'aurais pas laissé trainer un AcceptChanges quelque part ? Un appel à AcceptChanges remet l'état des lignes à Unchanged. En général on ne l'appelle pas explicitement, c'est le DataAdapter qui s'en charge.
    Ben non c'est ça qui est bizarre.

    je mets a jour les datatable dynamiquement grace au binding et quand je visualise mon dataset dans le deboggueur, le champ pour lequel j'ai modifier la valeur "X" dans une des textbox, affiche bien cette valeur "X".

    Mais par contre l'état de la datarow est "unchanged"..... je comprend pas. du coup pas moyen de mettre a jour ma DB

  4. #4
    Membre confirmé Avatar de Klivor
    Profil pro
    Inscrit en
    Janvier 2011
    Messages
    143
    Détails du profil
    Informations personnelles :
    Âge : 33
    Localisation : France

    Informations forums :
    Inscription : Janvier 2011
    Messages : 143
    Par défaut
    je crois que avant de faire l'ajout dans ta datatable , il faut créer une new datarow
    et apres pour voir si sa marche correctement tu rafraichis.

  5. #5
    Membre éclairé
    Profil pro
    Inscrit en
    Mars 2006
    Messages
    362
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Mars 2006
    Messages : 362
    Par défaut
    Citation Envoyé par Klivor Voir le message
    je crois que avant de faire l'ajout dans ta datatable , il faut créer une new datarow
    et apres pour voir si sa marche correctement tu rafraichis.
    je n'ai pas de problème pour ajouter des enregistrements a une des datatables mais mon soucis vient de la modification des valeurs dans une des datarows... avec le binding sur les tectbox et autre... si je modifie une testbox, mon dataset prend la modification en compte par contre l'état du datarow reste en unchanged.... donc pas possible de mettre a jour la DB.

    là je seche

Discussions similaires

  1. mise a jour dataset
    Par digofwall dans le forum VB.NET
    Réponses: 11
    Dernier message: 16/04/2010, 08h13
  2. Mise a jour Dataset problème AutoIncrement
    Par rvzip64 dans le forum Windows Forms
    Réponses: 1
    Dernier message: 16/06/2009, 16h09
  3. [VB.NET] Mise a jour dataset et commandbuilder
    Par thierry007 dans le forum Accès aux données
    Réponses: 2
    Dernier message: 15/12/2006, 18h38
  4. [C#] Mise a jour dataset sans dataAdapter
    Par King-Greg dans le forum Accès aux données
    Réponses: 5
    Dernier message: 10/12/2006, 15h17
  5. [VS2003][VB.NET]Mise à jour DataSet d'une grille (erreur)
    Par m-mas dans le forum Windows Forms
    Réponses: 2
    Dernier message: 08/02/2006, 10h41

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