Salut à tous,
j'ai une table avec une colonne numsequence possédant les valeurs 00001, 00002, 00003, 00004 , 00005, etc.... Ces données sont récupérées à partir d'un fichier .txt formaté manuellement.
Il arrive des fois ou les utilisateurs omettent certaines valeurs. Par exemple : 00001, 00002, 00004, 00005 , 00006. je veux m'assurer que la valeur n+1 est bien incrémentée à 1 dans le cas contraire afficher un message d'erreur.
Mon code :
Le premier test se fait avec les valeurs biens ordonnées (00001,00002,00003,00004,00005) et j'obtiens le résultat suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44 //************************************************************************************************************************* //Controle du numero de sequence string requete_cptsequence = "select numsequence from matable "; OleDbDataReader lire_cptsequence = cls.ouvrirRequète(requete_cptsequence, maconnexion); List<string> result = new List<string>(); try { while (lire_cptsequence.Read()) { result.Add(lire_cptsequence.GetString(0)); string[] tabseq = result.ToArray(); int cpttab = tabseq.Length; //recuperation de la longeur du tableau pour le traitement dans les boucles for for (int i = 1; i < cpttab ; i++) // La première boucle commence à partir de la valeur i=1 c'est à dire 00001 { for (int y = 2; y < cpttab; y++) // La deuxième boucle commence à partir de la valeur y=2 c'est à dire 00002 { int ti = Convert.ToInt16( tabseq[i]); // Je recupere la premiere valeur 00001 que je met dans la variable ti int ty = Convert.ToInt16(tabseq[y]); // Je recupere la premiere valeur 00002 que je met dans la variable ty int somme = ty - 1; //La variable somme va recevoir 00001 - 00002 = 00001. Le resultat doit etre egale à la valeur de ti pour que je passe à la ligne suivante if ( somme != ti ) { string[] linecptseq = { "Saut de numeros de sequence " + " " + tabseq[y] + " " }; System.IO.File.AppendAllLines(Application.StartupPath + "\\erreur_confrere.txt", linecptseq); } y = y + 1; } i = i + 1; } } } catch (Exception ex) { MessageBox.Show(ex.Message); }Le deuxième test se fait avec les valeurs 00001,00002,00004,00005,00006 et j'obtiens le résultat suivant :
Code : Sélectionner tout - Visualiser dans une fenêtre à part 00003 ,00005 ,00003.
Code : Sélectionner tout - Visualiser dans une fenêtre à part 00004,00004,00004,00004,00006,00004
je sollicite votre aide.
Partager