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 :

Comment actualiser mes données entrées?


Sujet :

Windows Forms

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre éclairé Avatar de solaar
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 607
    Par défaut Comment actualiser mes données entrées?
    bonjour!
    j'ai deux formulaire Frm1 -> Frm2; le formulaire Frm2 dépend du formulaire Frm1.
    le Frm2 s'ouvre en mode dialogue via le Frm1:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    Frm2 form = new Frm2();
      form.ShowDialog(this);
    mon problème:
    Sur le deuxième formulaire j'entre des données; j'utilise le mode connecté à ma base de donnée sql server.
    je me rend compte que sur le premier formulaire Frm1, je ne vois plus les données entrés par le second formulaire(Frm2).
    comment faire pour obtenir ces données? (j'actualise quoi?).

    une autre question.
    le mode déconnecté avec dataset datatable etc...
    Est ce possible d'obtenir les données entrés sur d'autres formulaires?

  2. #2
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Par défaut
    Bonjour,

    Peux-tu nous donner plus de détails ?

    Le DataSet utilisé comme source est rempli sur form1 ?
    Sur form2 tu modifies les données du dataset mais comment communiques-tu le dataset chargé sur form1 à form2 ?

    A ta dernière question : oui biensur mais pour t'aider montres nous un peu de code détaillant ce que tu fais !

  3. #3
    Membre éclairé Avatar de solaar
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 607
    Par défaut
    Oké merci. voilà, je présente le code ce trouvant sur mon premier formulaire(Frm1) avec l'utilisation d'un Combobox:
    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
     try
                {
                    string selectquery = "SELECT [Id_Intervenant],[Nom],[Prenom]FROM [INTERVENTIONDB].[dbo].[INTERVENANT]";
     
                    using (SqlConnection conn = new SqlConnection(Program.Chaine_SQLServers()))
                    {
     
                        //Ouvre la connection
                        conn.Open();
     
                        //executer vos instructions
                        SqlCommand cmd = new SqlCommand(selectquery, conn);
                        SqlDataReader reader = cmd.ExecuteReader();
                       if(reader!=null){
                        while (reader.Read())
                        {
                            id_intervenant.Items.Add(new ComboTextIntervenant(reader.GetInt32(reader.GetOrdinal("Id_Intervenant")), reader.GetString(reader.GetOrdinal("Prenom")), reader.GetString(reader.GetOrdinal("Nom"))));
                        }
                       }
                        //fermer connection
                        reader.Close();
                        conn.Close();
                    }
                }
     
                catch (Exception pb)
                {
                    MessageBox.Show("Erreur :" + pb.ToString());
                }
    celui du deuxième formulaire(Frm2) où je remplis la table societé:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    string Insertquery = "INSERT INTO [INTERVENTIONDB].[dbo].[SOCIETE]([Code_Societe],[Nom],[Adresse],[telephone])" +
                                 "VALUES('" + Code_Societe.Text.ToUpper() + "','" + Nom.Text + "','" + Adresse.Text + "','" + tel.Text + "')";
     
                            SqlConnection conn = new SqlConnection(Program.Chaine_SQLServers());
     
                            //Ouvre la cnnection
                            conn.Open();
     
                            SqlCommand cmd = new SqlCommand(Insertquery, conn);
                            int valeur = cmd.ExecuteNonQuery();
     
                            conn.Close();
                            if(valeur==1)   MessageBox.Show("Enregistrement Effeuctué");
    Pour ma deuxième, c'est pour être sur que je peux Utiliser les DataSet,DataTable et autres sans problème sur toute mon application, et oublier le mode connecté directement à la base de donnée comme le montre les codes précédents (au dessus).
    Merci.

  4. #4
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Par défaut
    Bonjour,

    Avec ce que tu montres, je ne vois pas en quoi les deux forms sont interdépendants (enfin form1 dépendant de form2).

    Dans form2 tu ajoutes des sociétés, dans form1 tu affiches des intervenants.

    Tu peux effectivement tout faire en déconnecté, mais il faudra veiller à charger tes données au bon moment et les mettre à jour au bon moment aussi.

    Ensuite pour reprendre le problème de mise à jour de form1, supposons que ce n'est pas une liste d'intervenants mais de sociétés. Il faudrait resélectionner la liste des sociétés dans form1 suite à la mise à jour faite dans form2, rebinder la liste des sociétés sur la combobox.

    Sinon une petite remarque à part, il serait bon que tu factorises le code utilisé pour exécuter des commandes SQL. Car tu donnes deux exemples de code (certes un ExecuteNonQuery et un ExecuteReader) et sur les deux tu n'utilises déjà pas le même code pour effectuer la connexion à la base de données.
    Pour te donner une petite, crées une classe utilitaire (static) qui pourrait proposer des méthodes ExecuteScalar, ExecuteReader, ExecuteNonQuery et prenant en paramètre une SqlCommand.
    Ceci aura pour avantage que tous tes appels à la base dans toute ton application seront faits par ces points d'entrée et cela te simplifiera énormément le debuggage

  5. #5
    Membre éclairé Avatar de solaar
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    607
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Côte d'Ivoire

    Informations professionnelles :
    Secteur : Industrie

    Informations forums :
    Inscription : Septembre 2007
    Messages : 607
    Par défaut
    Oui effectivement merci pour la remarque, ben j'ai utilisé le même code avec société.
    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
    try
                {
                    string selectquery = "SELECT [Code_Societe],[Nom],[Adresse],[telephone]FROM [INTERVENTIONDB].[dbo].[SOCIETE]";
                    using (SqlConnection conn = new SqlConnection(Program.Chaine_SQLServers()))
                    {
     
                        //Ouvre la cnnection
                        conn.Open();
     
                            //execute vos instructions
                            SqlCommand cmd = new SqlCommand(selectquery, conn);
                            SqlDataReader reader = cmd.ExecuteReader();
     
                            if (reader != null)
                            {
                                while (reader.Read())
                                {
                                    code_societe.Items.Add(new ComboTextSociete(reader.GetString(reader.GetOrdinal("Nom")), reader.GetString(reader.GetOrdinal("Adresse")), reader.GetString(reader.GetOrdinal("telephone")), reader.GetString(reader.GetOrdinal("Code_Societe"))));
     
                                }
                            }
                            //ferme la connection
                            reader.Close();
     
                       conn.Close();
     
                    }
                }
                catch (Exception pb)
                {
                    MessageBox.Show("Erreur :" + pb.ToString());
                }
    Tu peux effectivement tout faire en déconnecté, mais il faudra veiller à charger tes données au bon moment et les mettre à jour au bon moment aussi.
    voilà je me suis rendu compte lors qu'une personne entre des données puis veut les supprimer après. alors j'ai utilisé des requêtes
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    "SELECT  MAX([Id_Interv]) FROM [INTERVENTIONDB].[dbo].[EN_TETE_INTERVENTION]"
    aussi
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    "DELETE FROM [INTERVENTIONDB].[dbo].[EN_TETE_INTERVENTION] "+
                                            "WHERE [Id_Interv] = '" + v + "'";
    bien sur ma clés primaire s'incrémente.
    Il faudrait resélectionner la liste des sociétés dans form1 suite à la mise à jour faite dans form2, rebinder la liste des sociétés sur la combobox.
    je comprend pas le mot rebinder. je suis un peu new en C#.

    Pour te donner une petite, crées une classe utilitaire (static) qui pourrait proposer des méthodes ExecuteScalar, ExecuteReader, ExecuteNonQuery et prenant en paramètre une SqlCommand.
    Ceci aura pour avantage que tous tes appels à la base dans toute ton application seront faits par ces points d'entrée et cela te simplifiera énormément le debuggage
    Merci pour ton conseil, je commence à réfléchir sur cette classe.

  6. #6
    Membre émérite
    Homme Profil pro
    Consultant informatique
    Inscrit en
    Juillet 2007
    Messages
    693
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 42
    Localisation : France, Haute Garonne (Midi Pyrénées)

    Informations professionnelles :
    Activité : Consultant informatique

    Informations forums :
    Inscription : Juillet 2007
    Messages : 693
    Par défaut
    voilà je me suis rendu compte lors qu'une personne entre des données puis veut les supprimer après. alors j'ai utilisé des requêtes
    Code :

    "SELECT MAX([Id_Interv]) FROM [INTERVENTIONDB].[dbo].[EN_TETE_INTERVENTION]"

    aussi
    Code :

    "DELETE FROM [INTERVENTIONDB].[dbo].[EN_TETE_INTERVENTION] "+
    "WHERE [Id_Interv] = '" + v + "'";
    Euh là c'est hyper dangereux ce que tu fais (et encore une fois il faut utiliser les requêtes paramétrées). En gros tu supprimes toujours la dernière ligne insérée par qui que ce soit !

    Il faut quand tu enregistres un nouvel enregistrement récupérer la valeur de l'identifiant généré.

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

Discussions similaires

  1. Comment partager mes données entre 2 pc ?
    Par l.flipper dans le forum Administration
    Réponses: 5
    Dernier message: 09/02/2014, 20h50
  2. comment transférer les données entre 2 pc?.
    Par unix27 dans le forum Administration
    Réponses: 12
    Dernier message: 10/04/2006, 07h48
  3. [ADO.Net][VB.NET] Comment copier des données entre deux BDD différentes ?
    Par maddog2032 dans le forum Accès aux données
    Réponses: 6
    Dernier message: 06/06/2005, 11h01
  4. Réponses: 3
    Dernier message: 20/01/2005, 19h19
  5. Comment récuperer des données entrées au clavier?
    Par Elisée A. dans le forum MFC
    Réponses: 2
    Dernier message: 13/02/2004, 07h22

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