[C#] Boucle for sur DataSet ??

Boucle for sur DataSet ?? [C#] - C#/.NET managed - Programmation

Marsh Posté le 22-09-2005 à 22:29:58    

:hello:  
 
Comment je fais pour faire une boucle sur le [1] de cette matrice de dataset (ds est un DataSet)? (d'ailleurs j'arrive pas du tout à m'imaginer cette matrice...si qqn peut m'expliquer ;))
 

Code :
  1. ds.Tables[0].Rows[1]["Prix par pers."]


 
La partie fixe étant ["Prix par pers."]. Avec une simple matrice, c'est facile... mais là je suis paumé!
 
Merci pour votre aide!
 
++

Reply

Marsh Posté le 22-09-2005 à 22:29:58   

Reply

Marsh Posté le 23-09-2005 à 09:54:15    

up

Reply

Marsh Posté le 23-09-2005 à 12:11:34    

Tu veux simplement fair une boucle sur les lignes de ton dataset et recup les valeurs de la colonne "Prix par pers." ??
 

Code :
  1. foreach ( DataRow row in ds.Tables[0].Rows )
  2. {
  3.    messageBox.Show( row["Prix par pers."].ToString() );
  4. }


 
Je suis pas sur d'avoir bien compris ta question parce que ca me parait simple :D

Reply

Marsh Posté le 23-09-2005 à 13:48:12    

zetranber a écrit :

Tu veux simplement fair une boucle sur les lignes de ton dataset et recup les valeurs de la colonne "Prix par pers." ??
 

Code :
  1. foreach ( DataRow row in ds.Tables[0].Rows )
  2. {
  3.    messageBox.Show( row["Prix par pers."].ToString() );
  4. }


 
Je suis pas sur d'avoir bien compris ta question parce que ca me parait simple :D



Message édité par le_duc le 23-09-2005 à 13:54:59
Reply

Marsh Posté le 23-09-2005 à 13:55:11    

oui, c'est bien une boucle comme ca que j'aimerais faire, mais à l'intérieur de la boucle j'aimerais tester si le prix par pers. = 0 alors je change la valeur! (mais en restant dans le ds.Tables[0] si possible)


Message édité par le_duc le 23-09-2005 à 14:07:08
Reply

Marsh Posté le 23-09-2005 à 14:34:52    

Et bien, remplace le code du messageBox par une boucle de test tout simplement !
 

Code :
  1. foreach ( DataRow row in ds.Tables[0].Rows )
  2. {
  3.    if ( row["prix par pers"] != DBNull.Value && (int)row["prix par pers"] == 0 )
  4.    {
  5.        row["priw par pers"] = 10; // par exemple :)
  6.    }
  7. }


 
A la sortie du foreach, tout le dataset a été scanné, et les valeurs modfiées.

Reply

Marsh Posté le 23-09-2005 à 14:50:33    

zetranber a écrit :

Et bien, remplace le code du messageBox par une boucle de test tout simplement !
 

Code :
  1. foreach ( DataRow row in ds.Tables[0].Rows )
  2. {
  3.    if ( row["prix par pers"] != DBNull.Value && (int)row["prix par pers"] == 0 )
  4.    {
  5.        row["priw par pers"] = 10; // par exemple :)
  6.    }
  7. }


 
A la sortie du foreach, tout le dataset a été scanné, et les valeurs modfiées.


 
ahh  :ouch: trop cool! je croyais que je devais passer qd meme par ds.Tables[0]! mais si les valeurs sont direct modifiées, c trop beau :)

Reply

Marsh Posté le 23-09-2005 à 14:56:05    

Ben non, quand tu ecris  

Code :
  1. foreach ( DataRow row in ds.Tables[0].Rows )


 
C'est vers la ligne courante que va pointer l'objet row.
C'est une histoire de pointeurs tout ça.
 
Donc quand tu la modifies, ca modifie dans le dataset aussi !
 
@+
 :hello:  

Reply

Marsh Posté le 23-09-2005 à 15:08:31    

zetranber a écrit :

Ben non, quand tu ecris  

Code :
  1. foreach ( DataRow row in ds.Tables[0].Rows )


 
C'est vers la ligne courante que va pointer l'objet row.
C'est une histoire de pointeurs tout ça.
 
Donc quand tu la modifies, ca modifie dans le dataset aussi !
 
@+
 :hello:


 
 :jap:  on en apprend tout le jour :D
 
Merci beaucoup pour ton aide, ca marche impecc  :love:

Reply

Marsh Posté le 23-09-2005 à 15:11:30    

yep de rien.
 
Au plaisir.

Reply

Marsh Posté le 23-09-2005 à 15:11:30   

Reply

Marsh Posté le 26-09-2005 à 09:20:47    

zetranber a écrit :

Ben non, quand tu ecris  

Code :
  1. foreach ( DataRow row in ds.Tables[0].Rows )


 
C'est vers la ligne courante que va pointer l'objet row.
C'est une histoire de pointeurs tout ça.
 
Donc quand tu la modifies, ca modifie dans le dataset aussi !
 
@+
 :hello:


 
Sauf que les ponteurs en C# sont une hérésie [:ddr555]

Reply

Marsh Posté le 26-09-2005 à 12:10:05    

Bah on se comprend :)
J'aurais du employer le terme de référence, plutôt que pointeur :)


Message édité par zetranber le 26-09-2005 à 12:10:16
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed