Meilleur auteur de réponses
Problème avec le BackgroundWorker

Question
-
Bonjour
J'ai mis le background worker sur la form1, il appelle une sub dans un module ou une classe et cette classe va chercher de l'information dans les bases de données sur la form2 et la form1 mais ça ne fonctionne pas
pourquoi je passe par une classe et un module et pourquoi il va chercher l'infos sur form2 c,est parce que j'ai énormément de code et j'ai alléger tout ça en dispatchant mes choses dans des classes et sur d'autre forms
j'ai alors fait un petit programme en 20 minutes pour m'assurer que ce n'était pas mon code et ça ne fonctionne pas non plus..
je vous mets la structure de mon petit programme test :
Class Form1 private sub BackgroundWorker.runwork ' Du code module1.allerChercherDeLinfo() ' D'autre codes End Sub End Class _________________________________ Class Module1 'Du code Public Sub allerChercherDeLinfo() 'ca ne marche pas if form2.dataset.row(x).item(y) = Quelque chose Then End If End Sub 'D'autre code End Class
où est-ce que j'ai écrit ça ne marche pas.. c'est là le problème avec le background worker
merci à l'avance!!
La vie est belle!
- Modifié Peter_ZZZZZ mercredi 17 août 2016 15:24
Réponses
-
Bonjour Peter_ZZZZZ,
Veuillez consulter le thread suivant :
Correct way to use the BackgroundWorker
Je vous remercie par avance de votre retour.Cordialement,
TeodoraVotez! Appel à la contribution TechNet Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.
- Marqué comme réponse Peter_ZZZZZ jeudi 18 août 2016 20:29
Toutes les réponses
-
Bonjour Peter_ZZZZZ,
Veuillez consulter le thread suivant :
Correct way to use the BackgroundWorker
Je vous remercie par avance de votre retour.Cordialement,
TeodoraVotez! Appel à la contribution TechNet Community Support. LE CONTENU EST FOURNI "TEL QUEL" SANS GARANTIE D'AUCUNE SORTE, EXPLICITE OU IMPLICITE. S'il vous plaît n'oubliez pas de "Marquer comme réponse" les réponses qui ont résolu votre problème. C'est une voie commune pour reconnaître ceux qui vous ont aidé, et rend plus facile pour les autres visiteurs de trouver plus tard la résolution.
- Marqué comme réponse Peter_ZZZZZ jeudi 18 août 2016 20:29
-
Salut Teodora
Merci pour la réponse
Il est donc clair que mon code est BEAUCOUP trop compliqué pour utiliser le background worker!
Merci
On m'a parlé de async, je l'avais essayé et ça ne fonctionnait pas en parallèle avec le reste du code mais p-ê que tu auras un thread bien expliquer comme celui du backgroundworker pour ça!? : ) : )
Pierre
Je viens de lire sur async et les explications sont fait pour du petit code... p-être du petit code qui pourrait bloquer le programme mais quand même.. si vous avez une référence.. ce serait bien que cette référence s'adapte à mon exemple ci-haut incluant le fait qu'il y aura une vingtainte de sub.. des sub qui appelle d'autres sub, sur form1 à form5, des msgbox, des boutons, des labels, etc...
j'ai besoin de quelque chose qui fonctionne en parallèle pour des pages et des pages de codes : )
Merci
La vie est belle!
- Modifié Peter_ZZZZZ jeudi 18 août 2016 21:29
-
Bonjour Peter_ZZZZZ,
Avez-vous défini Option Strict On ?
Il y a de l’information utile dans le thread en bas:
Access cell value of datatableif form2.dataset.row(x).item(y) = Quelque chose Then End If
Il faut que vous accédiez à la table de données du DataSet avant d’accéder à la ligne et à la colonne:
if form2.dataset.Tables(0).Rows(x).ItemArray(y).ToString() = Quelque_chose Then End If
Cordialement,
Dimitar
- Modifié Dimitar DenkovMicrosoft contingent staff, Administrator jeudi 25 août 2016 09:02 correction des parenthèses
-
Salut Dimitar
je n'arrive pas à reproduire ton code!!
voici mon code qui fonctionne non pas avec le background worker mais pour le correction automatique de visual basic:
If Form2.Database1DataSet.a.Rows(0).ItemArray(0).ToString() = "5" Then Form1.Label1.Text = "ok" End If
pourrais-tu réécrire ton code avec mes mots parce que peu importe ce que j'essaie avec le :
[ 0 ]
ca ne fonctionne pas j'ai essayé plusieurs façon
merci!!
La vie est belle!
- Modifié Peter_ZZZZZ lundi 22 août 2016 14:41 j'ai oublié de clicker sur m'avertir mais il n'est plus là lorsqu'on modifie
-
BonjourPeter_ZZZZZ,
Tables(0) est la table de données du DataSet. Dans votre DataSet, c’est bien a (d’après le dernier extrait de code) mais elle n’était pas discernable dans le code du premier message.
Cordialement,
Dimitar
- Modifié Dimitar DenkovMicrosoft contingent staff, Administrator jeudi 25 août 2016 09:02 correction des parenthèses
-
Bonjour
Oui je me doute bien que vous ne pouviez pas inventer des noms de tables sans les connaître loll
Voici alors ce que j'écris mais ça ne fonctionne pas :
form2.Database1DataSet.a[0].Rows(x).ItemArray(y).ToString()
il souligne du début jusqu'à [0] et écrit : impossible de convertir une donnée de type dataset.aDataTable en boolean
Lorsque j'enlève le [0], tout est correcte mais le programme ne fonctionne pas comme au début de la question de ce post, il dit comme d'habitude.. pas de ligne à la position 0 parce que le module est appelé d'un background worker... en fait la logique dit ça puisque lorsque j'ai le même code ailleurs que dans un background worker.. tout fonctionne!
La vie est belle!
-
-
Bonjour Peter_ZZZZZ,
Vous n’avez pas besoin du 0, parce que « a » est le nom de la table de données et vous n’accédez pas au premier élément de la DataTableCollection dans le DataSet (je viens de corriger les parenthèses conformément au syntaxe de VB). Je voulais juste souligner que Rows est une propriété de la table de données et non du DataSet mais de votre dernier extrait de code je conclus que vous en avez déjà tenu compte.
et comment fais-je pour mettre option strict à on.
Ce paramètre peut être configuré dans les propriétés du projet -> Compiler -> Option Strict.
Cordialement,
Dimitar
- Modifié Dimitar DenkovMicrosoft contingent staff, Administrator jeudi 25 août 2016 09:03
-
Salut
Merci pour ton aide
Malheureusement ça ne fonctionne pas!!
Si vous désirez m'aider encore.. il faudra prendre mon problème ci-haut et le faire en 20 minutes.. pour vous rendre compte des problématique associées!! : )
Merci beaucoup!!!
A+ p-ê
La vie est belle!