Salut a tous
j ai charge via prog. 1 dataset avec une table (sans la
structure)
da.fill(ds,"table")
en fait je dois maintenant parcourir la collection et
mettre a jour un champ qui fait parti de la cle
donc je voulais supprimer la ligne courante puis en
recreer une en y inserant mes nouvelles valeurs
mais j ai un msg me disant que la collection a change ett
qu il n arrive pas a faire le next (ce qui me parait
normal)
for each dr in ds.table(0).rows
if critere then
dr.delete
...
endif
next
je pense qu il y a un moyen pour faire cette suppression
mais comment ?????
Salut a tous
j ai charge via prog. 1 dataset avec une table (sans la
structure)
da.fill(ds,"table")
en fait je dois maintenant parcourir la collection et
mettre a jour un champ qui fait parti de la cle
donc je voulais supprimer la ligne courante puis en
recreer une en y inserant mes nouvelles valeurs
mais j ai un msg me disant que la collection a change ett
qu il n arrive pas a faire le next (ce qui me parait
normal)
for each dr in ds.table(0).rows
if critere then
dr.delete
...
endif
next
je pense qu il y a un moyen pour faire cette suppression
mais comment ?????
Salut a tous
j ai charge via prog. 1 dataset avec une table (sans la
structure)
da.fill(ds,"table")
en fait je dois maintenant parcourir la collection et
mettre a jour un champ qui fait parti de la cle
donc je voulais supprimer la ligne courante puis en
recreer une en y inserant mes nouvelles valeurs
mais j ai un msg me disant que la collection a change ett
qu il n arrive pas a faire le next (ce qui me parait
normal)
for each dr in ds.table(0).rows
if critere then
dr.delete
...
endif
next
je pense qu il y a un moyen pour faire cette suppression
mais comment ?????
-----Message d'origine-----
La solution générique est d'avoir une autre collection
modifier. Tu pourras alors agir à ta guise sur ta
avoir l'erreur que tu as mentionnée.
Première méthode. Crée un tableau temporaire, parcours
originelle et stocke les lignes qui correspondent à ton
tableau temporaire, effectue tes modifications et efface
temporaire.
Deuxième méthode. Si ton critère est suffisamment
ds.Table[0].Select("critère"), ça te renverra un tableau
modifier.
Et enfin il reste toujours la bonne vieille méthode du
ds.Table[0].Rows.Count; i++) mais il faut faire très
bien penser aux problèmes de concurrence d'accès...
Julien Adam
"Rahan" wrote in
news:a15601c4792e$cec107f0$Salut a tous
j ai charge via prog. 1 dataset avec une table (sans la
structure)
da.fill(ds,"table")
en fait je dois maintenant parcourir la collection et
mettre a jour un champ qui fait parti de la cle
donc je voulais supprimer la ligne courante puis en
recreer une en y inserant mes nouvelles valeurs
mais j ai un msg me disant que la collection a change
qu il n arrive pas a faire le next (ce qui me parait
normal)
for each dr in ds.table(0).rows
if critere then
dr.delete
...
endif
next
je pense qu il y a un moyen pour faire cette
mais comment ?????
.
-----Message d'origine-----
La solution générique est d'avoir une autre collection
modifier. Tu pourras alors agir à ta guise sur ta
avoir l'erreur que tu as mentionnée.
Première méthode. Crée un tableau temporaire, parcours
originelle et stocke les lignes qui correspondent à ton
tableau temporaire, effectue tes modifications et efface
temporaire.
Deuxième méthode. Si ton critère est suffisamment
ds.Table[0].Select("critère"), ça te renverra un tableau
modifier.
Et enfin il reste toujours la bonne vieille méthode du
ds.Table[0].Rows.Count; i++) mais il faut faire très
bien penser aux problèmes de concurrence d'accès...
Julien Adam
"Rahan" <anonymous@discussions.microsoft.com> wrote in
news:a15601c4792e$cec107f0$a501280a@phx.gbl...
Salut a tous
j ai charge via prog. 1 dataset avec une table (sans la
structure)
da.fill(ds,"table")
en fait je dois maintenant parcourir la collection et
mettre a jour un champ qui fait parti de la cle
donc je voulais supprimer la ligne courante puis en
recreer une en y inserant mes nouvelles valeurs
mais j ai un msg me disant que la collection a change
qu il n arrive pas a faire le next (ce qui me parait
normal)
for each dr in ds.table(0).rows
if critere then
dr.delete
...
endif
next
je pense qu il y a un moyen pour faire cette
mais comment ?????
.
-----Message d'origine-----
La solution générique est d'avoir une autre collection
modifier. Tu pourras alors agir à ta guise sur ta
avoir l'erreur que tu as mentionnée.
Première méthode. Crée un tableau temporaire, parcours
originelle et stocke les lignes qui correspondent à ton
tableau temporaire, effectue tes modifications et efface
temporaire.
Deuxième méthode. Si ton critère est suffisamment
ds.Table[0].Select("critère"), ça te renverra un tableau
modifier.
Et enfin il reste toujours la bonne vieille méthode du
ds.Table[0].Rows.Count; i++) mais il faut faire très
bien penser aux problèmes de concurrence d'accès...
Julien Adam
"Rahan" wrote in
news:a15601c4792e$cec107f0$Salut a tous
j ai charge via prog. 1 dataset avec une table (sans la
structure)
da.fill(ds,"table")
en fait je dois maintenant parcourir la collection et
mettre a jour un champ qui fait parti de la cle
donc je voulais supprimer la ligne courante puis en
recreer une en y inserant mes nouvelles valeurs
mais j ai un msg me disant que la collection a change
qu il n arrive pas a faire le next (ce qui me parait
normal)
for each dr in ds.table(0).rows
if critere then
dr.delete
...
endif
next
je pense qu il y a un moyen pour faire cette
mais comment ?????
.
-----Message d'origine-----
La solution générique est d'avoir une autre collection
modifier. Tu pourras alors agir à ta guise sur ta
avoir l'erreur que tu as mentionnée.
Première méthode. Crée un tableau temporaire, parcours
originelle et stocke les lignes qui correspondent à ton
tableau temporaire, effectue tes modifications et efface
temporaire.
Deuxième méthode. Si ton critère est suffisamment
ds.Table[0].Select("critère"), ça te renverra un tableau
modifier.
Et enfin il reste toujours la bonne vieille méthode du
ds.Table[0].Rows.Count; i++) mais il faut faire très
bien penser aux problèmes de concurrence d'accès...
Julien Adam
"Rahan" wrote in
news:a15601c4792e$cec107f0$Salut a tous
j ai charge via prog. 1 dataset avec une table (sans la
structure)
da.fill(ds,"table")
en fait je dois maintenant parcourir la collection et
mettre a jour un champ qui fait parti de la cle
donc je voulais supprimer la ligne courante puis en
recreer une en y inserant mes nouvelles valeurs
mais j ai un msg me disant que la collection a change
qu il n arrive pas a faire le next (ce qui me parait
normal)
for each dr in ds.table(0).rows
if critere then
dr.delete
...
endif
next
je pense qu il y a un moyen pour faire cette
mais comment ?????
.
-----Message d'origine-----
La solution générique est d'avoir une autre collection
modifier. Tu pourras alors agir à ta guise sur ta
avoir l'erreur que tu as mentionnée.
Première méthode. Crée un tableau temporaire, parcours
originelle et stocke les lignes qui correspondent à ton
tableau temporaire, effectue tes modifications et efface
temporaire.
Deuxième méthode. Si ton critère est suffisamment
ds.Table[0].Select("critère"), ça te renverra un tableau
modifier.
Et enfin il reste toujours la bonne vieille méthode du
ds.Table[0].Rows.Count; i++) mais il faut faire très
bien penser aux problèmes de concurrence d'accès...
Julien Adam
"Rahan" <anonymous@discussions.microsoft.com> wrote in
news:a15601c4792e$cec107f0$a501280a@phx.gbl...
Salut a tous
j ai charge via prog. 1 dataset avec une table (sans la
structure)
da.fill(ds,"table")
en fait je dois maintenant parcourir la collection et
mettre a jour un champ qui fait parti de la cle
donc je voulais supprimer la ligne courante puis en
recreer une en y inserant mes nouvelles valeurs
mais j ai un msg me disant que la collection a change
qu il n arrive pas a faire le next (ce qui me parait
normal)
for each dr in ds.table(0).rows
if critere then
dr.delete
...
endif
next
je pense qu il y a un moyen pour faire cette
mais comment ?????
.
-----Message d'origine-----
La solution générique est d'avoir une autre collection
modifier. Tu pourras alors agir à ta guise sur ta
avoir l'erreur que tu as mentionnée.
Première méthode. Crée un tableau temporaire, parcours
originelle et stocke les lignes qui correspondent à ton
tableau temporaire, effectue tes modifications et efface
temporaire.
Deuxième méthode. Si ton critère est suffisamment
ds.Table[0].Select("critère"), ça te renverra un tableau
modifier.
Et enfin il reste toujours la bonne vieille méthode du
ds.Table[0].Rows.Count; i++) mais il faut faire très
bien penser aux problèmes de concurrence d'accès...
Julien Adam
"Rahan" wrote in
news:a15601c4792e$cec107f0$Salut a tous
j ai charge via prog. 1 dataset avec une table (sans la
structure)
da.fill(ds,"table")
en fait je dois maintenant parcourir la collection et
mettre a jour un champ qui fait parti de la cle
donc je voulais supprimer la ligne courante puis en
recreer une en y inserant mes nouvelles valeurs
mais j ai un msg me disant que la collection a change
qu il n arrive pas a faire le next (ce qui me parait
normal)
for each dr in ds.table(0).rows
if critere then
dr.delete
...
endif
next
je pense qu il y a un moyen pour faire cette
mais comment ?????
.
-----Message d'origine-----
Par exemple :
ds.Table[0].Rows[42].Delete();
DataRow n = ds.Table[0].NewRow();
n["id"] = 47;
etc...
ds.Table[0].Rows.Add(n);
et ensuite appelle Update() sur ton DataAdapter. Toutes
seront effacées par la DeleteCommand du DataAdapter.
modifiées seront mises à jour par UpdateCommand et
lignes seront insérées par InsertCommand. Il faut donc
propriétés avant l'appel à Update().
D'ailleurs en fait tu n'as pas besoin de table
lignes car Delete() ne retire pas la ligne de la
marquer la ligne comme étant effacée. C'est l'appel à
problème. (Ca ne change rien à ton problème mais c'est
fallait préciser).
Julien
"Rahan" wrote in
news:a08c01c4793e$39576aa0$
merci pour ta reponse
en effet j ai opte pour une table temporaire ou je stock
mes valeurs
mais si je veux mettre a jour ma bdd comment faire pour
qu il supprime ancienne ligne et ajoute les nouvelles
(rowstate ou ??? creer un nouveau da2)
da.update(ds,"table")-----Message d'origine-----
La solution générique est d'avoir une autre collection
avec les lignes àmodifier. Tu pourras alors agir à ta guise sur ta
collection principale sansavoir l'erreur que tu as mentionnée.
Première méthode. Crée un tableau temporaire, parcours
ta collectionoriginelle et stocke les lignes qui correspondent à ton
critère. Parcours cetableau temporaire, effectue tes modifications et efface
le tableautemporaire.
Deuxième méthode. Si ton critère est suffisamment
générique, passe pards.Table[0].Select("critère"), ça te renverra un tableau
avec les lignes àmodifier.
Et enfin il reste toujours la bonne vieille méthode du
for(int i = 0; i <ds.Table[0].Rows.Count; i++) mais il faut faire très
attention aux index etbien penser aux problèmes de concurrence d'accès...
Julien Adam
"Rahan" wrote in
messagenews:a15601c4792e$cec107f0$Salut a tous
j ai charge via prog. 1 dataset avec une table (sans
structure)
da.fill(ds,"table")
en fait je dois maintenant parcourir la collection et
mettre a jour un champ qui fait parti de la cle
donc je voulais supprimer la ligne courante puis en
recreer une en y inserant mes nouvelles valeurs
mais j ai un msg me disant que la collection a change
ettqu il n arrive pas a faire le next (ce qui me parait
normal)
for each dr in ds.table(0).rows
if critere then
dr.delete
...
endif
next
je pense qu il y a un moyen pour faire cette
suppressionmais comment ?????
.
.
-----Message d'origine-----
Par exemple :
ds.Table[0].Rows[42].Delete();
DataRow n = ds.Table[0].NewRow();
n["id"] = 47;
etc...
ds.Table[0].Rows.Add(n);
et ensuite appelle Update() sur ton DataAdapter. Toutes
seront effacées par la DeleteCommand du DataAdapter.
modifiées seront mises à jour par UpdateCommand et
lignes seront insérées par InsertCommand. Il faut donc
propriétés avant l'appel à Update().
D'ailleurs en fait tu n'as pas besoin de table
lignes car Delete() ne retire pas la ligne de la
marquer la ligne comme étant effacée. C'est l'appel à
problème. (Ca ne change rien à ton problème mais c'est
fallait préciser).
Julien
"Rahan" <anonymous@discussions.microsoft.com> wrote in
news:a08c01c4793e$39576aa0$a401280a@phx.gbl...
merci pour ta reponse
en effet j ai opte pour une table temporaire ou je stock
mes valeurs
mais si je veux mettre a jour ma bdd comment faire pour
qu il supprime ancienne ligne et ajoute les nouvelles
(rowstate ou ??? creer un nouveau da2)
da.update(ds,"table")
-----Message d'origine-----
La solution générique est d'avoir une autre collection
avec les lignes à
modifier. Tu pourras alors agir à ta guise sur ta
collection principale sans
avoir l'erreur que tu as mentionnée.
Première méthode. Crée un tableau temporaire, parcours
ta collection
originelle et stocke les lignes qui correspondent à ton
critère. Parcours ce
tableau temporaire, effectue tes modifications et efface
le tableau
temporaire.
Deuxième méthode. Si ton critère est suffisamment
générique, passe par
ds.Table[0].Select("critère"), ça te renverra un tableau
avec les lignes à
modifier.
Et enfin il reste toujours la bonne vieille méthode du
for(int i = 0; i <
ds.Table[0].Rows.Count; i++) mais il faut faire très
attention aux index et
bien penser aux problèmes de concurrence d'accès...
Julien Adam
"Rahan" <anonymous@discussions.microsoft.com> wrote in
message
news:a15601c4792e$cec107f0$a501280a@phx.gbl...
Salut a tous
j ai charge via prog. 1 dataset avec une table (sans
structure)
da.fill(ds,"table")
en fait je dois maintenant parcourir la collection et
mettre a jour un champ qui fait parti de la cle
donc je voulais supprimer la ligne courante puis en
recreer une en y inserant mes nouvelles valeurs
mais j ai un msg me disant que la collection a change
ett
qu il n arrive pas a faire le next (ce qui me parait
normal)
for each dr in ds.table(0).rows
if critere then
dr.delete
...
endif
next
je pense qu il y a un moyen pour faire cette
suppression
mais comment ?????
.
.
-----Message d'origine-----
Par exemple :
ds.Table[0].Rows[42].Delete();
DataRow n = ds.Table[0].NewRow();
n["id"] = 47;
etc...
ds.Table[0].Rows.Add(n);
et ensuite appelle Update() sur ton DataAdapter. Toutes
seront effacées par la DeleteCommand du DataAdapter.
modifiées seront mises à jour par UpdateCommand et
lignes seront insérées par InsertCommand. Il faut donc
propriétés avant l'appel à Update().
D'ailleurs en fait tu n'as pas besoin de table
lignes car Delete() ne retire pas la ligne de la
marquer la ligne comme étant effacée. C'est l'appel à
problème. (Ca ne change rien à ton problème mais c'est
fallait préciser).
Julien
"Rahan" wrote in
news:a08c01c4793e$39576aa0$
merci pour ta reponse
en effet j ai opte pour une table temporaire ou je stock
mes valeurs
mais si je veux mettre a jour ma bdd comment faire pour
qu il supprime ancienne ligne et ajoute les nouvelles
(rowstate ou ??? creer un nouveau da2)
da.update(ds,"table")-----Message d'origine-----
La solution générique est d'avoir une autre collection
avec les lignes àmodifier. Tu pourras alors agir à ta guise sur ta
collection principale sansavoir l'erreur que tu as mentionnée.
Première méthode. Crée un tableau temporaire, parcours
ta collectionoriginelle et stocke les lignes qui correspondent à ton
critère. Parcours cetableau temporaire, effectue tes modifications et efface
le tableautemporaire.
Deuxième méthode. Si ton critère est suffisamment
générique, passe pards.Table[0].Select("critère"), ça te renverra un tableau
avec les lignes àmodifier.
Et enfin il reste toujours la bonne vieille méthode du
for(int i = 0; i <ds.Table[0].Rows.Count; i++) mais il faut faire très
attention aux index etbien penser aux problèmes de concurrence d'accès...
Julien Adam
"Rahan" wrote in
messagenews:a15601c4792e$cec107f0$Salut a tous
j ai charge via prog. 1 dataset avec une table (sans
structure)
da.fill(ds,"table")
en fait je dois maintenant parcourir la collection et
mettre a jour un champ qui fait parti de la cle
donc je voulais supprimer la ligne courante puis en
recreer une en y inserant mes nouvelles valeurs
mais j ai un msg me disant que la collection a change
ettqu il n arrive pas a faire le next (ce qui me parait
normal)
for each dr in ds.table(0).rows
if critere then
dr.delete
...
endif
next
je pense qu il y a un moyen pour faire cette
suppressionmais comment ?????
.
.