Relancer une requête après chaque x temps en boucle

Résolu
maintenance_info
Messages postés
66
Date d'inscription
lundi 5 juin 2017
Statut
Membre
Dernière intervention
3 janvier 2022
- 11 juin 2019 à 17:32
Whismeril
Messages postés
17339
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
24 mai 2022
- 13 juin 2019 à 18:40
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

Whismeril
Messages postés
17339
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
24 mai 2022
596
13 juin 2019 à 18:40
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.
1
Whismeril
Messages postés
17339
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
24 mai 2022
596
11 juin 2019 à 17:38
Bonsoir

Tu peux utiliser un timer.
0
maintenance_info
Messages postés
66
Date d'inscription
lundi 5 juin 2017
Statut
Membre
Dernière intervention
3 janvier 2022
1
11 juin 2019 à 17:39
j'ai utiliser un timer mais rien
0
Whismeril
Messages postés
17339
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
24 mai 2022
596
11 juin 2019 à 17:40
Poste le code
0
maintenance_info
Messages postés
66
Date d'inscription
lundi 5 juin 2017
Statut
Membre
Dernière intervention
3 janvier 2022
1
11 juin 2019 à 17:47
Dans la partie Load
timer3.Interval = 5000;
timer3.Tick += new EventHandler(timer3_Tick);
timer3.Enabled = true;

dans Timer:

timer3.stop();
exécute_requette();
0
Whismeril
Messages postés
17339
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
24 mai 2022
596
Modifié le 11 juin 2019 à 18:55
Ben si tu fait timer.Stop() il s'arrête et ne recommencera pas dans 5000 millisecondes.
0
Whismeril
Messages postés
17339
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
24 mai 2022
596
11 juin 2019 à 19:31
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.
0
maintenance_info
Messages postés
66
Date d'inscription
lundi 5 juin 2017
Statut
Membre
Dernière intervention
3 janvier 2022
1
12 juin 2019 à 09:01
ok
0

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

Posez votre question
Whismeril
Messages postés
17339
Date d'inscription
mardi 11 mars 2003
Statut
Modérateur
Dernière intervention
24 mai 2022
596
12 juin 2019 à 18:31
Bien, et sans
timer3.stop();
cela fonctionne t il comme tu veux?
0
maintenance_info
Messages postés
66
Date d'inscription
lundi 5 juin 2017
Statut
Membre
Dernière intervention
3 janvier 2022
1
13 juin 2019 à 09:29
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.
0
vb95
Messages postés
2630
Date d'inscription
samedi 11 janvier 2014
Statut
Modérateur
Dernière intervention
19 mai 2022
151
13 juin 2019 à 15:41
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
0