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

  1. #1
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2015
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : Côte d'Ivoire

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

    Informations forums :
    Inscription : janvier 2015
    Messages : 50
    Points : 24
    Points
    24

    Par défaut réactualiser automatiquement les données de mon ui via la base de donnée

    Bonjour ,
    je suis entrain d’écrire un programme de gestion de stock et j'utilise MySQL , mon soucis il y a plus de 4 onglets(tab) : le dashboard , les rapports de ventes , les dépenses , la caisse(pour enregistrer les ventes) ... et chacun d'eux contient des datagridview .
    Pour réactualiser les Datagridview , je travaille sur les évènements du Tabcontrol donc par exemple lorsque je passe à la tab ventes à la tab Dépenses j'appelle la fonction suivante :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
     
    public void loadDgDep()
    {
           dgvDep.DataSource = db.query("SELECT idDep , nomDep , montant , dateDep FROM depenses .....");
    }
    ainsi de suite pour chaque tab mais j'ai testé mon application en ligne et du coup c'est un peu lent je me suis dis peut être c'est à cause de l’hébergeur , mais j'ai voulu rendre ça un peu plus autonome de manière indépendante pour que ça réactualise automatiquement sans avoir besoin de passer à un autre onglet,
    je ne sais pas comment m'y prendre , quelqu'un pourrait me mettre sur la voix ?
    Merci d'avance

  2. #2
    Membre éprouvé
    Profil pro
    Inscrit en
    juillet 2008
    Messages
    1 425
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : juillet 2008
    Messages : 1 425
    Points : 1 257
    Points
    1 257

    Par défaut

    tu colle un thread dans ton application principale
    et dans la fonction un sleep sur le temps d'attente
    comme tu es dans un autre thread avec un dispatcher applicationIdle

    sinon tu utilisation un dispatcherTimer qui te simplifie la vie

    exemple avec un disptacher timer qui calcul le temps pour arriver a 10h30 puis tt les jours a 10h30 apres le premier tick
    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
     
     
          dt = new DispatcherTimer(DispatcherPriority.Background);
          dt.Tick += Dt_Tick;
         DateTime n = DateTime.Now;
                DateTime t = new DateTime(n.Year, n.Month, n.Day, 10, 30, 0);
                TimeSpan dec = t - n;
                Logs.Add("attente vers : 10:30:00 > " + dec.TotalMilliseconds);
                dt.Interval = dec;
                dt.Start();
     
     
            public const int MS_PER_DAY = 86400 * 1000;
     
            private void Dt_Tick(object sender, EventArgs e)
            {
                dt.Stop();
                Logs.Add("activité a : " + DateTime.Now);
                dt.Interval = TimeSpan.FromMilliseconds(MS_PER_DAY);
                dt.Start();
            }
    ce sont les memes calculs pour un thread normal et globalement le meme principe

    cette méthode exécute tes fonctions de rafraîchissement en tache de fond

    si c'est long ... tu stock les resultats dans une variable que tu set au changement de tab
    autre possibilite : je n'utilise jamais le datagrid je lui préfère la listview
    verifié avec snoop que ton datagrid est bien virtualisé

    enfin si j'ai bien compris
    IKEAS : Finalement je crois que c'est dans ses faiblesses que l'on y trouve a la fois de la force et a la fois de la richesse...
    ----------------------------------------------------
    Si vous avez du taf en wpf & design d'application sympa, contactez moi !!!!

  3. #3
    Membre à l'essai
    Homme Profil pro
    Développeur informatique
    Inscrit en
    janvier 2015
    Messages
    50
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 24
    Localisation : Côte d'Ivoire

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

    Informations forums :
    Inscription : janvier 2015
    Messages : 50
    Points : 24
    Points
    24

    Par défaut

    oui j'ai compris , merci

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

Discussions similaires

  1. Envoyer les donnés du mon formulaire a la base de données
    Par karimna dans le forum PHP & MySQL
    Réponses: 3
    Dernier message: 01/04/2015, 16h12
  2. Affichage de la base de données selon le choix de la base de données
    Par abdelkarim_1987 dans le forum Formulaires
    Réponses: 9
    Dernier message: 14/06/2013, 11h34
  3. Réponses: 4
    Dernier message: 13/10/2006, 08h33
  4. Réponses: 6
    Dernier message: 22/06/2006, 12h23
  5. Réponses: 6
    Dernier message: 16/05/2006, 20h51

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