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 :

Aide pas a pas pour faire un update Mysql depuis datagridview


Sujet :

C#

  1. #1
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut Aide pas a pas pour faire un update Mysql depuis datagridview
    Bonjour

    J'apprends a developer en C# (mais je connais parfaitement le C)

    J'ai trouvé asser facilement comment utiliser Mysql connector pour ouvrir une connexion et remplir un datagridview

    L'inverse semle réservé aux erudit, il n'y a AUCUNE information claire sur le sujet ni en Anglais ni en Francais

    Quelqu'un aurait il la patience de me guider vers un tutorial existant ou expliquer les rudiments
    1- Comment detecter les rows du datagrid modifiés
    2- Comment applique les modification dans le dataset sous jacent et dans la DB

    Merci

    ?
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  2. #2
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut La boite noire
    C'est curieux personne sur aucun forum ne semble avoir de reponse a cette question !
    On personne n'a envie de la donner

    Apres pas mal d'essais d'erreurs et de recherche j'ai trouve une solution qui seble simple et efficace

    Si ca interesse quelqu'un d'en parler, je la soumet ici
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  3. #3
    Membre averti Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Points : 342
    Points
    342
    Par défaut
    Utilises-tu les DataSets ?

    BDD --> DataSet --> DataGridView

    Un DataSet peut être lié au DataGridView et reflête donc tous les changements de ce dernier.
    Contrec

  4. #4
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut Oui j'utilise les dataset
    C'est d'ailleurs la methode la plus courrante

    MySqlDataAdapter adapter = new MySqlDataAdapter();
    adapter.SelectCommand = new MySqlCommand(selectcmd, conn);

    DataSet ds = new DataSet();
    adapter.Fill(ds);
    dgv_addr.DataSource = ds.Tables[0];


    Mais !
    Apres trouver comment faire l'update en DB c'est ca le parcours du combatant !!
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  5. #5
    Membre averti Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Points : 342
    Points
    342
    Par défaut
    Tu n'as pas :

    adapter.Update(ds);

    Moi j'utilisais TableAdapter et ça donnais :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    if(ds.HasChanges()) // Si il y a des changements
    {
        MonTableAdapter.Update(ds); // MAJ de la BDD
        ds.AcceptChanges(); // MAJ du DataSet
    }
    Contrec

  6. #6
    Membre émérite
    Profil pro
    Mangeur de gauffre
    Inscrit en
    Octobre 2007
    Messages
    4 413
    Détails du profil
    Informations personnelles :
    Localisation : Belgique

    Informations professionnelles :
    Activité : Mangeur de gauffre

    Informations forums :
    Inscription : Octobre 2007
    Messages : 4 413
    Points : 2 498
    Points
    2 498
    Par défaut Simple pour toi
    Tu utilise quel SGBD ?
    Moi c'est MySql et j'ai fini par trouver ceci
    MySqlCommandBuilder construit les commandes SQL (au lieu de ler preparer a la main comme c'est documenté généralement quand on trouve la doc)

    Et puis on applique les modifs selon le type

    private void btn_select_Click(object sender, EventArgs e)
    {

    MySqlCommandBuilder cb = new MySqlCommandBuilder(adaAddr);

    DataSet ch = new DataSet();
    ch = dsAddr.GetChanges(DataRowState.Deleted);
    adaAddr.Update(ch);

    ch = dsAddr.GetChanges(DataRowState.Modified);
    adaAddr.Update(ch);

    ch = dsAddr.GetChanges(DataRowState.Added);
    adaAddr.Update(ch);


    }
    « Ils ne savaient pas que c'était impossible, alors ils l'ont fait ». (Twain)

  7. #7
    Membre averti Avatar de Contrec
    Homme Profil pro
    Inscrit en
    Mars 2005
    Messages
    597
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38

    Informations forums :
    Inscription : Mars 2005
    Messages : 597
    Points : 342
    Points
    342
    Par défaut
    Moi c'était pour Oracle.

    Mais ta méthode à l'air pas mal à première vue. Quand tu utilises des Adapteurs et que tu travailles en mode déconnecté, c'est toujours sensiblement la meme chose, quel que soit le SGBD utilisé.

    Perso, je me sers beaucoup de DataSets et DataTables car tu peux les parcourir, les lier à des Grid, récupérer les rows modifiées (GetChanges()) etc...
    Contrec

Discussions similaires

  1. [MySQL-5.5] Problème pour faire un UPDATE
    Par Poulki dans le forum Requêtes
    Réponses: 2
    Dernier message: 05/05/2014, 14h56
  2. [MySQL] classe php pour faire un update table mysql
    Par legrandse dans le forum PHP & Base de données
    Réponses: 2
    Dernier message: 23/05/2011, 15h52
  3. Requete select pour faire un Update
    Par tralala2 dans le forum MS SQL Server
    Réponses: 2
    Dernier message: 03/10/2009, 16h11
  4. [SSIS] [2K5] OLE DB Command pour faire un update Oracle
    Par clementratel dans le forum SSIS
    Réponses: 2
    Dernier message: 17/02/2009, 15h52
  5. [MySQL] problème pour faire un update
    Par ph_anrys dans le forum PHP & Base de données
    Réponses: 9
    Dernier message: 16/03/2006, 15h48

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