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 :

Utilisation de Dataset avec c# et MySql


Sujet :

Windows Forms

  1. #1
    Candidat au Club
    Inscrit en
    Janvier 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 4
    Points : 2
    Points
    2
    Par défaut Utilisation de Dataset avec c# et MySql
    Bonjour. Je dois réaliser pour ma boite un logiciel qui enregistre des données sur la base de données au moment où il se ferme. Le problème est que je n'arrive pas à trouver le bon code (je n'ai pas appris à programmer, et je n'ai pas le temps de le faire si je veux finir ce projet à temps).

    Voici l'ancien code qui marchait jusque la :

    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    //Reset de toutes les tables
     
                //MyAdapter.InsertCommand = new MySqlCommand("DELETE FROM materiels", Connection);
                //MyAdapter.Update(DS, "materiels");
                //MyAdapter.InsertCommand = new MySqlCommand("DELETE FROM plots", Connection);
                //MyAdapter.Update(DS, "plots");
                //MyAdapter.InsertCommand = new MySqlCommand("DELETE FROM reservations", Connection);
                //MyAdapter.Update(DS, "reservations");
                //MyAdapter.InsertCommand = new MySqlCommand("DELETE FROM patrons", Connection);
                //MyAdapter.Update(DS, "patrons");
                //MyAdapter.InsertCommand = new MySqlCommand("DELETE FROM j_MatPlot", Connection);
                //MyAdapter.Update(DS, "j_MatPlot");
                //MyAdapter.InsertCommand = new MySqlCommand("DELETE FROM j_ResaPlot", Connection);
                //MyAdapter.Update(DS, "j_ResaPlot");
                //MyAdapter.InsertCommand = new MySqlCommand("DELETE FROM j_ResaMat", Connection);
                //MyAdapter.Update(DS, "j_ResaMat");
                //MyAdapter.InsertCommand = new MySqlCommand("DELETE FROM j_ResaPatron", Connection);
                //MyAdapter.Update(DS, "j_ResaPatron");
                //MyAdapter.InsertCommand = new MySqlCommand("DELETE FROM j_ResaUser", Connection);
                //MyAdapter.Update(DS, "j_ResaUser");
                //MyAdapter.InsertCommand = new MySqlCommand("DELETE FROM global", Connection);
                //MyAdapter.Update(DS, "global");
     
                //load.Avancer(1);
     
                //Copie du DS dans la Base
     
                //MyAdapter = new MySqlDataAdapter("SELECT * FROM materiels", Connection);
                //MyBuilder = new MySqlCommandBuilder(MyAdapter);
                //MyAdapter.Update(DS, "materiels");
                //MyAdapter = new MySqlDataAdapter("SELECT * FROM plots", Connection);
                //MyBuilder = new MySqlCommandBuilder(MyAdapter);
                //MyAdapter.Update(DS, "plots");
                //MyAdapter = new MySqlDataAdapter("SELECT * FROM reservations", Connection);
                //MyBuilder = new MySqlCommandBuilder(MyAdapter);
                //MyAdapter.Update(DS, "reservations");
                //MyAdapter = new MySqlDataAdapter("SELECT * FROM patrons", Connection);
                //MyBuilder = new MySqlCommandBuilder(MyAdapter);
                //MyAdapter.Update(DS, "patrons");
     
                //load.Avancer(1);
     
                //MyAdapter = new MySqlDataAdapter("SELECT * FROM j_MatPlot", Connection);
                //MyBuilder = new MySqlCommandBuilder(MyAdapter);
                //MyAdapter.Update(DS, "j_MatPlot");
                //MyAdapter = new MySqlDataAdapter("SELECT * FROM j_ResaPlot", Connection);
                //MyBuilder = new MySqlCommandBuilder(MyAdapter);
                //MyAdapter.Update(DS, "j_ResaPlot");
                //MyAdapter = new MySqlDataAdapter("SELECT * FROM j_ResaMat", Connection);
                //MyBuilder = new MySqlCommandBuilder(MyAdapter);
                //MyAdapter.Update(DS, "j_ResaMat");
                //MyAdapter = new MySqlDataAdapter("SELECT * FROM j_ResaPatron", Connection);
                //MyBuilder = new MySqlCommandBuilder(MyAdapter);
                //MyAdapter.Update(DS, "j_ResaPatron");
                //MyAdapter = new MySqlDataAdapter("SELECT * FROM j_ResaUser", Connection);
                //MyBuilder = new MySqlCommandBuilder(MyAdapter);
                //MyAdapter.Update(DS, "j_ResaUser");
                //MyAdapter = new MySqlDataAdapter("SELECT * FROM global", Connection);
                //MyBuilder = new MySqlCommandBuilder(MyAdapter);
                //MyAdapter.Update(DS, "global");
    Le reset des tables est obligatoire car sinon je crois que la copie du DS dans la base crée une erreur (si le matériel est déjà entré et qu'on le remet sans vider la base).

    Voici le nouveau code qui doit être mis en place :

    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
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    //Copie du DS dans la Base
                //nouveau codage
     
                MyAdapter = new MySqlDataAdapter("SELECT * FROM materiels", Connection);
                MyBuilder = new MySqlCommandBuilder(MyAdapter);
                MyAdapter.UpdateCommand = new MySqlCommand("UPDATE materiels SET Nom , Fournisseur, Fabriquant, Gamme, Famille, Annee, NumInventaire, NumSerie, Remarques");
                MyAdapter.InsertCommand = new MySqlCommand("INSERT INTO materiels (Nom, Fournisseur, Fabriquant, Gamme, Famille, Annee, NumInventaire, NumSerie, Remarques) ");
     
     
     
                MyAdapter = new MySqlDataAdapter("SELECT * FROM plots", Connection);
                MyBuilder = new MySqlCommandBuilder(MyAdapter);
                MyAdapter.UpdateCommand = new MySqlCommand("UPDATE plots SET identifiant, emplacement, remarques ");
                MyAdapter.InsertCommand = new MySqlCommand("INSERT INTO plots (identifiant, emplacement, remarques) ");
     
     
     
                MyAdapter = new MySqlDataAdapter("SELECT * FROM reservations", Connection);
                MyBuilder = new MySqlCommandBuilder(MyAdapter);
                MyAdapter.UpdateCommand = new MySqlCommand("UPDATE reservations SET Debut, Fin, Utilite, Code, Remarques, CheckSupport, RemarquesSupport, Cloture, Annule, RemarquesFinReservation");
                MyAdapter.InsertCommand = new MySqlCommand("INSERT INTO reservations (Debut, Fin, Utilite, Code, Remarques, CheckSupport, RemarquesSupport, Cloture, Annule, RemarquesFinReservation) ");
     
     
     
                MyAdapter = new MySqlDataAdapter("SELECT * FROM patrons", Connection);
                MyBuilder = new MySqlCommandBuilder(MyAdapter);
                MyAdapter.UpdateCommand = new MySqlCommand("UPDATE patrons SET Nom, Prenom, Fonction ");
                MyAdapter.InsertCommand = new MySqlCommand("INSERT INTO patrons (Nom, Prenom, Fonction) ");
     
     
     
                load.Avancer(1);
     
                MyAdapter = new MySqlDataAdapter("SELECT * FROM j_MatPlot", Connection);
                MyBuilder = new MySqlCommandBuilder(MyAdapter);
                MyAdapter.UpdateCommand = new MySqlCommand("UPDATE j_MatPlot SET PlotID, MatID ");
                MyAdapter.InsertCommand = new MySqlCommand("INSERT INTO j_MatPlot (PlotID, MatID) ");
     
     
     
                MyAdapter = new MySqlDataAdapter("SELECT * FROM j_ResaPlot", Connection);
                MyBuilder = new MySqlCommandBuilder(MyAdapter);
                MyAdapter.UpdateCommand = new MySqlCommand("UPDATE j_ResaPlot SET PlotID, ResaID ");
                MyAdapter.InsertCommand = new MySqlCommand("INSERT INTO j_ResaPlot (PlotID, ResaID) ");
     
     
     
                MyAdapter = new MySqlDataAdapter("SELECT * FROM j_ResaMat", Connection);
                MyBuilder = new MySqlCommandBuilder(MyAdapter);
                MyAdapter.UpdateCommand = new MySqlCommand("UPDATE j_ResaPlot SET PlotID, ResaID ");
                MyAdapter.InsertCommand = new MySqlCommand("INSERT INTO j_ResaPlot (PlotID, ResaID) ");
     
     
     
                MyAdapter = new MySqlDataAdapter("SELECT * FROM j_ResaPatron", Connection);
                MyBuilder = new MySqlCommandBuilder(MyAdapter);
                MyAdapter.UpdateCommand = new MySqlCommand("UPDATE j_ResaPatron SET PrenomID, NomID, ResaID ");
                MyAdapter.InsertCommand = new MySqlCommand("INSERT INTO j_ResaPatron (PrenomID, NomID, ResaID) ");
     
     
     
                MyAdapter = new MySqlDataAdapter("SELECT * FROM j_ResaUser", Connection);
                MyBuilder = new MySqlCommandBuilder(MyAdapter);
                MyAdapter.UpdateCommand = new MySqlCommand("UPDATE j_ResaUser SET Prenom, Nom, ResaID ");
                MyAdapter.InsertCommand = new MySqlCommand("INSERT INTO j_ResaUser (Prenom, Nom, ResaID) ");
     
     
     
                MyAdapter = new MySqlDataAdapter("SELECT * FROM global", Connection);
                MyBuilder = new MySqlCommandBuilder(MyAdapter);
                MyAdapter.UpdateCommand = new MySqlCommand("UPDATE global SET NumReservation, NumMatAdd ");
                MyAdapter.InsertCommand = new MySqlCommand("INSERT INTO global (NumReservation, NumMatAdd) ");
    Si vous pouvez m'aider à trouver ce qui ne va pas. Merci.

  2. #2
    Membre actif
    Profil pro
    Inscrit en
    Janvier 2004
    Messages
    614
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2004
    Messages : 614
    Points : 299
    Points
    299
    Par défaut
    Je ne pense pas que la philosophie de ce forum soit de trouver l'erreur dans un bloc de code sans indiquer le message d'erreur.
    tu devrais essayer de nous donner plus d'indication su la ou ca va pas avec le message d'erreur qui va bien et ou cela se produit.
    Ainsi ce sera plus productif pour toi et pour nous.
    Bon courage pour la suite et n'hesite pas a revenir avec des questions plus precises.

  3. #3
    Candidat au Club
    Inscrit en
    Janvier 2009
    Messages
    4
    Détails du profil
    Informations forums :
    Inscription : Janvier 2009
    Messages : 4
    Points : 2
    Points
    2
    Par défaut
    Il n'y a pas de message d'erreurs. Seulement la base de données ne récupère pas les valeurs. Je suis désolé de ne pouvoir être plus précis mais je n'ai pas les connaissances pour ça.

  4. #4
    Nouveau membre du Club
    Inscrit en
    Novembre 2005
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Novembre 2005
    Messages : 40
    Points : 26
    Points
    26
    Par défaut
    Normal tu ne lance aucune commande Update.
    Tu défini juste tes requêtes insert et Update que tu charge dans tes adapters.

    un apadter.Update(DATASET, NOMTABLE); sera plus efficace

    Le reset des tables est obligatoire car sinon je crois que la copie du DS dans la base crée une erreur
    un Update est une action de mise a jour il ne doit donc pas y avoir d'erreur contrairement au cas ou tu fais un insert (ou là effectivement il peux y avoir conflit). Et si c'est le cas il nous faut un message d'erreur pour t'aider.

    de plus dans ton précédent post tu disais ne pas vouloir faire de Delete sur tes tables ? Je ne comprend plus ....

    Comme je t'ai déjà répondu dans ton précédent post ton ancien code ne me semble pas mal. Maintenant il faut peut être en effet redéfinir la commande Update pour chaque adapter comme tu la fait ci-dessus. A mon avis avec un mix des 2 tu peux t'en sortir.

    Recherche sur le net un bon tutorial sur le fonctionnement des DataSet et tu devrais t'en sortir.

    Nous pouvons t'aider si tu as des problèmes spécifiques ou si tu as besoin de comprendre quelque chose mais nous ne coderons pas à ta place. Si tu n'a pas le temps et que tu ne veux pas t'embêter avec ce code, je te conseil de faire appel à un consultant, un freelance ou un stagaire pour faire le boulot.

    Bon Week end

Discussions similaires

  1. Réponses: 2
    Dernier message: 03/08/2014, 19h30
  2. Utilisation de IReport avec Hibernate et MySQL
    Par mazda dans le forum AWT/Swing
    Réponses: 1
    Dernier message: 09/03/2013, 23h14
  3. Utilisation de CrystalReport avec c# et MySql
    Par krolis dans le forum C#
    Réponses: 4
    Dernier message: 12/05/2010, 00h07
  4. Peut-on utiliser les DataSet avec Oracle ?
    Par etoile_de_vie dans le forum C#
    Réponses: 19
    Dernier message: 28/04/2008, 17h13
  5. Réponses: 1
    Dernier message: 05/05/2006, 23h34

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