Datagrid en temps reel

Résolu
sandra26 Messages postés 92 Date d'inscription mercredi 5 juillet 2006 Statut Membre Dernière intervention 5 août 2009 - 1 août 2006 à 12:34
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 - 14 août 2006 à 19:59
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

MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
1 août 2006 à 18:40
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# 
3
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
1 août 2006 à 19:43
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# 
3
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
1 août 2006 à 19:45
Mince, le lien pour System.Threading.Timers est pas passé
C'est donc ici
Mx
MVP C# 
3
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
1 août 2006 à 12:56
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# 
0

Vous n’avez pas trouvé la réponse que vous recherchez ?

Posez votre question
cs_Bidou Messages postés 5487 Date d'inscription dimanche 4 août 2002 Statut Membre Dernière intervention 20 juin 2013 61
1 août 2006 à 13:15
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
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
1 août 2006 à 13:21
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# 
0
sandra26 Messages postés 92 Date d'inscription mercredi 5 juillet 2006 Statut Membre Dernière intervention 5 août 2009
1 août 2006 à 18:35
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
0
sandra26 Messages postés 92 Date d'inscription mercredi 5 juillet 2006 Statut Membre Dernière intervention 5 août 2009
1 août 2006 à 18:56
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
0
sandra26 Messages postés 92 Date d'inscription mercredi 5 juillet 2006 Statut Membre Dernière intervention 5 août 2009
14 août 2006 à 14:40
merci bcp pour ton aide qui ma ete precieuse

sandra
0
MorpionMx Messages postés 3466 Date d'inscription lundi 16 octobre 2000 Statut Membre Dernière intervention 30 octobre 2008 57
14 août 2006 à 19:59
Y'a pas de quoi

Mx
MVP C# 
0
Rejoignez-nous