Bonjour à tous (réédition car le premier message à disparu)

Je me présente Guillaume, étudiant en info - développer. J'ai un projet à faire actuellement, la technologie utilisé est le C# avec le pattern MVC. (J'utilise donc les objets)

J'essaye de faire communiquer deux classe (Entreprise et DataBase => Pour le moment je passerai en pattern une fois débuger).

Ma méthode de classe DataBase me retourne une liste de liste de chaine de caractères.

class.Entreprise.cs
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
 
DataBase MesEntreprises = new DataBase("SELECT * FROM PP2_Entreprise");
class.DataBase.cs
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
 
 public List<List<string>> select_listeEntreprise()
        {
            List<List<string>> data = new List<List<string>>();
            OracleConnection conn = new OracleConnection(connexion); //j'instancie une nouvelle conncexion
            conn.Open(); //j'ouvre la connexion
            OracleCommand cmd = new OracleCommand(); //j'instancie une commande
            cmd.Connection = conn;//je lui transmet la connexion
            cmd.CommandText = RQT; //je lui donne la requette
 
            OracleDataReader datareader = cmd.ExecuteReader(); //j'execute la requette
 
            int nb = datareader.FieldCount; // le nombre de colone
 
            int y = 1; // indice de la ligne
 
            // test
            List<string> Col = new List<string>();
 
            while (datareader.Read())
            {
                int i = 0; // i = indice de la colone
                while (i != nb)
                {
                    try
                    {
                        string laData = Convert.ToString(datareader.GetValue(i));
                        Col.Add(laData);
                        //j'ajoute dans la liste le résultat
                    }
                    catch (Exception e)
                    {
                        //sinon je transmet une erreur
                        MessageErreur MessErrSelect = new MessageErreur("ORA_0001", "Erreur fatale : \n" + e);
                        MessErrSelect.getMessage();
                    }
 
                    i++;
                }
                data.Add(Col);
                y++;
            }
            return data;
        }

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
 
foreach (List<string> values in MesEntreprises.select_listeEntreprise())
            {
                string var = values[1];
                string var2 = values[2];
                Entreprise MonEnrprise = new Entreprise();
                MonEnrprise.setID(Convert.ToInt16(values[0]));
                MonEnrprise.setNom(values[1]);
                MonEnrprise.setAdresse(values[2]);
                MonEnrprise.setVille(values[3]);
                MonEnrprise.setFax(values[4]);
                MonEnrprise.setType(values[5]);
                MonEnrprise.setQualifie(values[6]);
                MonEnrprise.setCommentaire(values[7]);
 
                data.Add(MonEnrprise);
                MonEnrprise = null;
            }
 
            return data;
}
Mon Problème est que j'ai le nom d'entreprise du premier enregistrement qui se répète sur toutes les autres.

A chaque passage dans la boucle var est égale au premier nom d'entreprise.

Information supplémentaires :

Quand je passe le curseur sur MesEntreprises.select_listEntreprise() il marque bien List<List<string>> mais quand je met dans me foreach je ne peux mettre List<string>.

Je pense que c'est mon foreach mon problème (je ne change pas de ligne je reste sur la première).

Avez vous une idée ?

Merci pour vos réponses.

Vous êtes la solutions des problèmes des autres, grâce à vos aides nous débutant nous devenons vous.