Requete sql visual studio c# retourne plusieurs fois la même
Résolu/Ferméptisephy Messages postés 74 Date d'inscription jeudi 4 décembre 2008 Statut Membre Dernière intervention 8 novembre 2022 - 8 nov. 2022 à 10:58
- Requete sql visual studio c# retourne plusieurs fois la même
- Microsoft visual c++ runtime - Guide
- Ecran retourne - Guide
- Telecharger fl studio 20 pour pc gratuit complet - Télécharger - Édition & Montage
- Visual paradigm - Télécharger - Gestion de données
- Imprimer plusieurs fois la même image sur une page ✓ - Forum Logiciels
6 réponses
22 sept. 2022 à 11:01
bonjour,
Dans l'exemple que tu donnes, est-ce que ce sont les résultats complets?
22 sept. 2022 à 13:20
Bien le bonjour,
nous c'est un fichire test, pour illustrer que le résultat apparait en doublon.
Exemple:
dans mon fichier en entrée, de 50 lignes, j'ai un numéro de siren toute les 10 lignes, mon programme enregistre dans un tableau les 10 sirens, jusque là c'est tout bon:
123456...
989878..
323232..
789....
321....
6544...
32121...
121212..
3232...
3232...
Mais quand j'execute ma requete, dans mon fichier excel, j'ai :
123456...
123456...
123456...
123456...
989878..
989878..
989878..
323232..
323232..
323232..
789....
789....
789....
(des lignes en double)
alors que quand je compare avec la base de données, je devrait avoir, meme si j'ai 4 lignes pour un siren données, toutes des données différentes :
123456... entreprise 1 750€
123456...entreprise 1 70€
123456...entreprise 1 520€
123456... entreprise 1 1750€
989878..entreprise 2 88€
989878..entreprise 2 818€
989878..entreprise 2 9388€
etc....
j'ai l'impression qu'en faisant un (if(monreader.read(....) dans mon for, il doit n'arrive pas à reprendre les autres données de la base ...
22 sept. 2022 à 14:04
Le if, en effet, ne reprend qu'une ligne suite à chaque requête.
que signifie "j'ai un numéro de siren toute les 10 lignes"?
Quel est le lien entre ton fichier d'entrée, et les quatre tables t0, t1, t2, et t3?
Combien de lignes dans ton tableau sirens?
Combien de lignes dans ton Excel?
Essaie d'être précis, de donner des faits précis.
Utilise peut-être un exemple avec moins de données.
23 sept. 2022 à 09:47
bonjour,
donc dans mon fichier, il y a des lignes/
DEBECOTT DEBI7815469832 FR10FR ACOSS DT1DT 65980049800024 ENTREPRISE DUPONT DT2 37050049800024 MR1MR 66652315300038 VILLE AEE5E 78861779305653 URSSAF DE LILLE ET TR AE3 GEDFDF00401-20222044 711 E165DF7050049DF54024
et ça se repete, il n'y a que le siren 37050049800024 et d'autres données qui change.
Le programme parcour le fichier en entrée et va chercher ce siren 37050049800024 puis les autres et les enregistre dans : List<String> sirens = new List<String>();
Admetons que j'ai un fichiers texte 18 lignes ( 2 fois le nombre de ligne que j'ai mis en exemple) , on aura donc 2 sirens d'enregistrés dans le tableau.
J'ai rejoué mon programme, avec un fichier en entrée de 182 lignes, il m'a trouvé 13 sirens et le fichier de sortie contient 13 lignes.
Pour les sirens , il m'a trouvé les numero suivants :
7 fois le numero 123456
5 fois le numero 789654
1 fois le numero 123698
j'ai regardé mon fichier exl généré en sorti et je n'ai pas la ligne avec le numero 123698.
Chaque colonnes des 7 lignes avec le numero 123456 sont identiques ...
De plus :
mon programme après avoir récupéré les sirens, je souhaite faire, pour chaque siren de ma liste, ma requete, mo nreader et j'enregistre le resutlat dans mon fichier excel à la suite et à la fin, je créé mon fichier excel, mais effectivement cela doit être à cause de mon if.
Toutefois, le soucis, c'est que je parcours ma liste sirens avec une boucle for et je n'arrive pas à faire mon while de ce fait.
Est ce que selon vous , je dois enlever le for pour faire mon while ?
merci beaucoup.
23 sept. 2022 à 10:10
Si, dans ta liste, tu mets 7 fois le numero 123456, que comptes-tu faire à partir de là? Traiter sept fois tous les enregistrements pour ce numéro? Traiter sept fois le premier enregistrement pour ce numéro?
23 sept. 2022 à 11:08
Alors logiquement il va me mettre les 7 lignes dans mon fichier excel, car dans la base de données, pour le numero de siren 123456, dans l'une de mes tables, j'ai 7 lignes ( je viens de faire une recherche avec le numero de siren ) avec d'autres données différentes, les une des autres, mais on dirait qu'il boucle sur le 1er résultat qu'il a trouvé, est ce que vous voyez où je veux en venir?
Merci
23 sept. 2022 à 12:27
Le programme fait 7 fois la même requête, cela me semble normal d'avoir donc 7 fois le même résultat.
Si tu traites les 7 résultats de chaque requête, tu auras 7 fois les 7 résultats.
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre questionModifié le 23 sept. 2022 à 13:11
Ah oui je vois.
donc je dois faire une boucle while et enlever mon for alors ?
23 sept. 2022 à 14:27
Tout dépend ce que tu veux réaliser, ce que tu n"as pas expliqué.
Il fait peut-être supprimer la boucle for, en effet.
8 nov. 2022 à 10:58
Bonjour,
désolé pour le temps de réponse, finallement j'ai réussi, j'ai modifié ma boulce for et au lieu de faire :
if (monreader.Read()) //while {
j'ai fais un :
while (monreader.Read()) {
J'avais également un manque d'information en amont (...), j'ai bien paramétré les clefs primaires et mon programme est plus fluide.
Merci beaucoup.