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 :

les array list sont compatibles avec les datagrid


Sujet :

C#

  1. #1
    Membre régulier
    Inscrit en
    Février 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 239
    Points : 70
    Points
    70
    Par défaut les array list sont compatibles avec les datagrid
    Voila 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
     
    ......
     
    ArrayList listeLigne = new ArrayList() ;
    StreamReader sr=File.OpenText("SI4DEST.dat") ;
    	ligne = sr.ReadLine();
    	     if (ligne != null && ligne != string.Empty) 
    		{
    		string [] listeChaine = ligne.Split('\t') ;
    		listeLigne.Add(listeChaine) ;
                               }
     
                              Dr = Dt.NewRow();
     
                               Dr[0]=listeLigne.ToString() ;
    	              Dr[1]="bonjour1";
    	              Dr[2]="bonjour2";
    		 Dr[3]="bonjour3";
    		 Dr[4]="bonjour4";
    		 Dr[5]="bonjour5";
     
    		Dt.Rows.Add(Dr);
    .........

    Et en fait j'aimerais que chaque colone de mon datargid contienne une celule de mon ARRAY LIST j'ai essaye de faire sa mé ca ne marche pas l'eereur que je vois affiché dans ma cellule de mon datagrid : System.Collection.ArayList
    Comment faire ??

    Merci a toute les personnes qui me repondrons !!

  2. #2
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Bonjour,

    dans ces 2 instructions :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    string [] listeChaine = ligne.Split('\t') ; listeLigne.Add(listeChaine) ;
    Listeligne est une collection de tableaux de chaines et non une chaine

    D'où l'erreur en affectant à une cellule un élement de liste ligne, soit un tableau complet et non une chaine.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    Dr[x]=listeLigne[i][j].
    devrait passer à la compil.

  3. #3
    Membre régulier
    Inscrit en
    Février 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 239
    Points : 70
    Points
    70
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    [/Dr[x]=listeLigne[i][j]
    J'ai pas compris a koi corespon tes deux compteur ?? I et J ?

  4. #4
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Ce sont les index dans le tableau de tableau de chaines que tu as défini.

    Peut-être veux-tu faire ceci :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    for (k=0; (k<listechaine.Count) &&(k<Dr.Count;k++) 
      Dr[k]=listechaine[k].ToString() ;
    Dans ce cas, listeligne serait inutile (sauf pour conserver les lignes lues en mémoire) ...

  5. #5
    Membre régulier
    Inscrit en
    Février 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 239
    Points : 70
    Points
    70
    Par défaut
    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
    45
    46
     
    // Déclaration de mon DataTable.
    			// Déclaration de mon DataRows.
    			// Déclaration de mon DataView.
     
    			DataTable Dt = new DataTable();
     
    			// Ajout des entêtes de colonnes a mon DataTable.
    			Dt.Columns.Add(new DataColumn("Macro",typeof (string)));
    			Dt.Columns.Add(new DataColumn("No",typeof (string)));
    			Dt.Columns.Add(new DataColumn("Dest",typeof (string)));
    			Dt.Columns.Add(new DataColumn("D",typeof (string)));
    			Dt.Columns.Add(new DataColumn("C",typeof (string)));
    			Dt.Columns.Add(new DataColumn("P",typeof (string)));
     
     
    			ArrayList listeLigne = new ArrayList() ;
    			//Lecture de mon fichier
    			string ligne = " " ;
    			StreamReader sr=File.OpenText(@"C:\Documents and Settings\i.abarkan\Desktop\REF\SI4DEST.dat") ;
     
    			while ((ligne = sr.ReadLine()) != null)
    			{
    				if (ligne != null && ligne != string.Empty) 
    				{
    					string [] listeChaine = ligne.Split('\t') ;
    					listeLigne.Add(listeChaine) ;
    					string machaine = listeLigne.ToString();
    				}
    			}
    			for (int i = 0 ; i < listeLigne.Count; i++ )
    			{
    				DataRow Dr = Dt.NewRow();
    				for(int j = 0; j < listeLigne.Count; j++)
    				{
    					Dr[j] = ((string[]) listeLigne[i])[j];
    				}
    				Dt.Rows.Add(Dr);
    			}
    			// Association de mon DataView a mon Datagrid.
    			DataView Dv = new DataView(Dt);
    			dgObjet.DataSource = Dv;
    			dgObjet.DataBind();
     
     
    		}

    la faute c'est Exception Details: System.IndexOutOfRangeException: Index was outside the bounds of the array.

  6. #6
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Petite erreur :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
     for(int j = 0; j < ((string[]) listeLigne[i]).Count; j++) ...

  7. #7
    Membre régulier
    Inscrit en
    Février 2007
    Messages
    239
    Détails du profil
    Informations forums :
    Inscription : Février 2007
    Messages : 239
    Points : 70
    Points
    70
    Par défaut
    c cool sa marche super

  8. #8
    Expert éminent Avatar de Graffito
    Profil pro
    Inscrit en
    Janvier 2006
    Messages
    5 993
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Janvier 2006
    Messages : 5 993
    Points : 7 903
    Points
    7 903
    Par défaut
    Juste une remarque :
    En réglant le nombre de tabulatoons de l'indentation à 2 dans les options de l'éditeur, on réduit beaucoup le nombre de blancs en début de ligne .

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. Réponses: 2
    Dernier message: 05/05/2015, 14h37
  2. [Lazarus] Les composants Lazarus sont-ils compatibles avec les composants Delphi ?
    Par Pierre GIRARD dans le forum Lazarus
    Réponses: 21
    Dernier message: 03/06/2013, 10h55
  3. Réponses: 7
    Dernier message: 19/03/2010, 16h31
  4. Réponses: 2
    Dernier message: 04/05/2009, 23h38
  5. problème avec les array en pl/pgsql
    Par nico31120 dans le forum PostgreSQL
    Réponses: 1
    Dernier message: 04/03/2005, 16h04

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