IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

C# Discussion :

Arraylist d'Arraylists - comment la parcourir


Sujet :

C#

  1. #1
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 182
    Points : 103
    Points
    103
    Par défaut Arraylist d'Arraylists - comment la parcourir
    Bonjour,

    J'ai développé une classe contenant une méthode executeCommand() revevant en paramètre une commande sql et renvoyant le résultat de cette requête sous forme d'arraylist contenant elle même pour chacun de ses indices une arraylist.

    A chaque indice de la première arraylist correspond une ligne de résultat, a chaque indice de la seconde correspond un champs de cette même ligne, ci dessous le code de ma classe avec la méthode executeCommand() :

    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
     
     
    class Database
        {
            private string connectionString;
            private OdbcConnection myOdbcConnection;
     
            public Database(string connStr)
            {
                connectionString = connStr;
                myOdbcConnection = new OdbcConnection(connectionString);
            }
     
            public ArrayList executeCommand(string sqlCommand)
            {
                int i; 
                OdbcDataReader myReader = null;                                   
     
                myOdbcConnection.Open();
     
                OdbcCommand myOdbcCommand = new OdbcCommand(sqlCommand);
                myOdbcCommand.Connection = myOdbcConnection;
                myReader = myOdbcCommand.ExecuteReader();
     
                ArrayList tableResult = new ArrayList();
                ArrayList lineResult = new ArrayList();
     
                while (myReader.Read())
                {
                    for (i = 0; i < myReader.FieldCount; i++)
                    {
                        lineResult.Add(myReader[i]);
                    }
     
                    tableResult.Add(lineResult.Clone());
                    lineResult.Clear();
                }
     
                myOdbcConnection.Close();
                return tableResult;
            }
        }
    Le problème c'est que je n'arrive pas à parcourir cette arraylist d'arraylist.... et donc ne peux pas récupérer le contenu des champs renovoyé par ma requete sql. La logique (ou MA logique...) voudrait que j'accède à ces éléments par un truc du genre tableResult[i][j] mais non, ca ne fonctionne pas...

    Merci d'avance.

  2. #2
    Membre expérimenté
    Homme Profil pro
    Inscrit en
    Juillet 2007
    Messages
    1 277
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Réunion

    Informations forums :
    Inscription : Juillet 2007
    Messages : 1 277
    Points : 1 521
    Points
    1 521
    Par défaut
    Déjà entendu parler de DataTable ?

    Au lieu d'utiliser un DataReader, utilise un DataAdapter.

    .NET remplit alors automatiquement ta DataTable.

    Pour parcourir une DataTable, rien de plus simple :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    OdbcCommand cmd = ... ;
    OdbcDataAdapter oda = new OdbcDataAdapter(cmd);
    DataTable dt = new DataTable();
    oda.Fill(dt);
    for(int row = 0 ; row < dt.Rows.Count ; row++) {
       for(int column = 0 ; column < dt.Columns.Count ; column++) {
           object mavaleur = dt.Rows[row][column];
       }
    }

  3. #3
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 182
    Points : 103
    Points
    103
    Par défaut
    Non, jamais entendu parlé dans les tutos que j'ai pu glaner ici ou là...

    Effectivement cette méthode me parait beaucoup plus simple et efficace, je vais donc l'approfondir, merci de ton aide

  4. #4
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2007
    Messages
    182
    Détails du profil
    Informations personnelles :
    Âge : 48
    Localisation : France

    Informations forums :
    Inscription : Mars 2007
    Messages : 182
    Points : 103
    Points
    103
    Par défaut
    Tests effectués... Cela fonctionne à merveille !
    Je me demande pourquoi dans la majorité des tutos c'est le datareader qui est mis en avant....

    encore merci

  5. #5
    Membre régulier
    Profil pro
    Inscrit en
    Mars 2008
    Messages
    88
    Détails du profil
    Informations personnelles :
    Âge : 38
    Localisation : France

    Informations forums :
    Inscription : Mars 2008
    Messages : 88
    Points : 81
    Points
    81
    Par défaut
    Pense à mettre un tag résolu

    Bonne journée

  6. #6
    Membre actif Avatar de g_tarik0010
    Homme Profil pro
    Développeur Web
    Inscrit en
    Mai 2006
    Messages
    186
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Yvelines (Île de France)

    Informations professionnelles :
    Activité : Développeur Web
    Secteur : High Tech - Multimédia et Internet

    Informations forums :
    Inscription : Mai 2006
    Messages : 186
    Points : 284
    Points
    284
    Par défaut Arraylist d'Arraylists - comment la parcourir
    Je suis d'accord avec le fait d'utiliser une datatable sinon si tu veux faire selon ta façon tu peux voir du coté des indexeurs

    Voir le lien suivant http://msdn.microsoft.com/fr-fr/libr...tx(VS.80).aspx

Discussions similaires

  1. Problème d'ArrayList d'arrayList d'arrayList
    Par Shaina dans le forum Collection et Stream
    Réponses: 5
    Dernier message: 25/02/2011, 11h04
  2. création de HashMap<ArrayList<String>, ArrayList<String>>
    Par Balbuzard dans le forum Collection et Stream
    Réponses: 7
    Dernier message: 26/08/2008, 12h18
  3. Arraylist de Arraylists de strings
    Par PomFritz dans le forum C#
    Réponses: 6
    Dernier message: 31/05/2008, 12h03
  4. Arraylist et héritage, comment profiter des deux?
    Par Fikus dans le forum Collection et Stream
    Réponses: 2
    Dernier message: 23/03/2007, 17h09
  5. [VB.NET] PB ArrayList.CopyTo(ArrayList)
    Par AbyssoS dans le forum Windows Forms
    Réponses: 1
    Dernier message: 29/04/2006, 12h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo