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 :

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 premier test se fait avec les valeurs biens ordonnées (00001,00002,00003,00004,00005) et j'obtiens le résultat suivant : 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
00004,00004,00004,00004,00006,00004
.

je sollicite votre aide.