Datagrid en temps reel [Résolu]

Signaler
Messages postés
92
Date d'inscription
mercredi 5 juillet 2006
Statut
Membre
Dernière intervention
5 août 2009
-
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
-
salut je suis actuellement sur un programme qui sera depose sur un serveur.


Je voudrais que les donnees affichees dans mes datagrids apparaissent en temps reel, est-ce que quelqu'un pourrai me donner une solution ou bien m'aiguiller?
Merci de me venir en aide

sandra

10 réponses

Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
47
Disons que ca depend a quel rythme tu declenches ton event.
Et aussi de la lourdeur de tes requetes (en temps d'execution), taille des données a ramener, etc...

Si ca peut te suffir de declencher ton timer toutes les 10 secondes par exemple, je ne pense pas que ce soit trop lourd. Si maintenant tu veux lancer tes requetes toutes les demies secondes, la ca risque d'etre un peu plus rude

Je peux pas te donner + de details sachant que je ne sais pas trop en quoi consiste ton projet. Mais tu peux toujours essayer de faire des tests et voir si ca peut te satisfaire ou non.

Mx
MVP C# 
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
47
Le plus judicieux serait d'utiliser  la classe System.Timers.Timer

Voici un petit exemple tout simple
<hr />using

System;

using System.Windows.Forms;

using System.Timers;

public
class
Form1 :
Form
{

   private System.Timers.
Timer timer;

   public Form1()
   {

      this.timer =
new System.Timers.
Timer();
// On instancie le timer
      this.timer.Interval = 5000;
// 5 secondes avant que l'evenement Elapsed se declenche
      this.timer.Elapsed +=
new
ElapsedEventHandler(timer_Elapsed);
// Evenement qui se declenchera quand le temps sera écoulé
      this.timer.Start();
// On demarre le timer
   }

   
   private
void timer_Elapsed(
object sender,
ElapsedEventArgs e)
   {

      this.timer.Stop();
// On stoppe le timer
      MessageBox.Show(
"coucou");
// On fait ce qu'on a a faire
      this.timer.Start();
// On redemarre le timer
   }
}
<hr />
Il y a 2 autres classes "Timer":
System.Threading.Timer
System.Windows.Forms.Timer

Voici un petit comparatif ici

Mx
MVP C# 
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
47
Mince, le lien pour System.Threading.Timers est pas passé
C'est donc ici
Mx
MVP C# 
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
47
Salut

Je te propose simplement de recharger ta source de données toutes les X secondes, vi le déclenchement d'un timer.
Y'a peut etre une meilleure solution, mais c'est la seule qui me vient a l'esprit a l'heure actuelle.

Mx
MVP C# 
Messages postés
5487
Date d'inscription
dimanche 4 août 2002
Statut
Modérateur
Dernière intervention
20 juin 2013
51
Hi,

L'idéal, serait d'avoir un event qui te notifie quand y'a des changements à effectuer, pour ensuite les répercuter dans ton DataGridView...
Plus dur à mettre en place que le timer

<hr size="2" />VC# forever
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
47
Le truc, c'est que si sa source de données est un jeu de données qui provient d'une bdd, ce n'est pas celle-ci qui va la prevenir que des données ont été modifiées.
Il faudra donc que ce soit l'appli qui aille verifier elle meme l'état des valeurs. Donc un timer qui lance sa requete et re-affiche les données devrait etre suffisant.

Si les données ne proviennent pas d'une bdd, alors peut-etre qu'il y a moyen au niveau des events. A voir.

Mx
MVP C# 
Messages postés
92
Date d'inscription
mercredi 5 juillet 2006
Statut
Membre
Dernière intervention
5 août 2009

jai pense faire comme tu ma conseille, cest a dire utiliser un timer mais cest un trop lourd non??
ca risque de faire ramer mon programme non?

sandra
Messages postés
92
Date d'inscription
mercredi 5 juillet 2006
Statut
Membre
Dernière intervention
5 août 2009

ok merci


je vais essayer mais je pense que cest la meilleure solution par contre je crois que je mettrais mon timer un peut plus souvent


merci pour ton aide
Par contre je ne sais pas tres bien utiliser un timer peut-tu m'aider?
de toute facon je pense chercher sur le site mais une aide de ta part serai encore mieux
merci encore

sandra
Messages postés
92
Date d'inscription
mercredi 5 juillet 2006
Statut
Membre
Dernière intervention
5 août 2009

merci bcp pour ton aide qui ma ete precieuse

sandra
Messages postés
3466
Date d'inscription
lundi 16 octobre 2000
Statut
Modérateur
Dernière intervention
30 octobre 2008
47
Y'a pas de quoi

Mx
MVP C#