Relancer une requête après chaque x temps en boucle [Résolu]

Signaler
Messages postés
46
Date d'inscription
lundi 5 juin 2017
Statut
Membre
Dernière intervention
23 octobre 2019
-
Whismeril
Messages postés
14242
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
20 février 2020
-
Bonjour,

j'ai une requête que je dois la lancer de façon périodique(chaque 2 heurs) sans avoir besoin de fermer la forme.

6 réponses

Messages postés
14242
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
20 février 2020
343
Si ton programme ne fait que cette requête, tu peux aussi le mettre dans les taches programmées de windows, il se lance, exécute sa requête et s'éteint.
Messages postés
14242
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
20 février 2020
343
Bonsoir

Tu peux utiliser un timer.
maintenance_info
Messages postés
46
Date d'inscription
lundi 5 juin 2017
Statut
Membre
Dernière intervention
23 octobre 2019

j'ai utiliser un timer mais rien
Messages postés
14242
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
20 février 2020
343
Poste le code
maintenance_info
Messages postés
46
Date d'inscription
lundi 5 juin 2017
Statut
Membre
Dernière intervention
23 octobre 2019

Dans la partie Load
timer3.Interval = 5000;
timer3.Tick += new EventHandler(timer3_Tick);
timer3.Enabled = true;

dans Timer:

timer3.stop();
exécute_requette();
Whismeril
Messages postés
14242
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
20 février 2020
343
Ben si tu fait timer.Stop() il s'arrête et ne recommencera pas dans 5000 millisecondes.
Messages postés
14242
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
20 février 2020
343
Au fait, deux questions au paravant, je t'ai demandé de clôturer tous tes sujets ouverts et qui seraient résolu.

Tant que tu ne l'auras pas fait, je ne répondrais plus à tes questions.
Et comme tu l'as sans doute remarqué, on est pas nombreux à répondre.
maintenance_info
Messages postés
46
Date d'inscription
lundi 5 juin 2017
Statut
Membre
Dernière intervention
23 octobre 2019

ok
Messages postés
14242
Date d'inscription
mardi 11 mars 2003
Statut
Contributeur
Dernière intervention
20 février 2020
343
Bien, et sans
timer3.stop();
cela fonctionne t il comme tu veux?
maintenance_info
Messages postés
46
Date d'inscription
lundi 5 juin 2017
Statut
Membre
Dernière intervention
23 octobre 2019

donc j'ai trouvé une solution:
j'ai ajouté un timer :interval=500
et dans la partie code du timer:
private void timer4_Tick(object sender, EventArgs e)
{
//requètte
}

et c'est parfait
ma question comment je la configure de ce répéter cet événement chaque 2h du 7h du matin à 18h du matin.
Messages postés
2074
Date d'inscription
samedi 11 janvier 2014
Statut
Contributeur
Dernière intervention
20 février 2020
86
bonjour à vous deux !
Pour maintenance_info
Ton timer4 avec un intervalle de 500 va déclencher l'évènement toutes les 500 millisecondes et donc lancer ta requête toutes les 500 millisecondes .
Et ce n'est pas ceci que tu veux
Ta requête doit se lancer à 7 h, 9 h, 11 h, 13 H, 15 H, 17 h et 18 h comme tu le précises ( toutes les 2 heures entre 7 H et 18 H ) ce qui implique que le PC reste allumé de 7h à 18 h .
Ton timer avec un intervalle de 15 minutes par exemple doit détecter l'heure qu'il est . Si il est 7 h le timer lance la première requête
Pendant cette requête tu peux mettre le timer sur Stop si tu veux
Une fois la requête faite tu relances le timer si celui a été arrêté et le timer doit vérifier l'heure et attendre qu'il soit 9 h pour lancer la seconde requête et ainsi de suite