|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité régulier
![]() Inscription : février 2006 Messages : 13 ![]() |
Bonjour à tous,
mon problème est le suivant : Suite l'utilisation de l'objet Select sur la table d'une dataset,j'obtiens une array de datarow. J'aimerais pouvoir copier chacune de ces datarow dans une autre table dans le but de réutiliser l'objet select sur cette nouvelle table. Dans un premier temps,j'ai essayé d'insérer les row en utilisant DS.Table("NewTable").Add(DataRow) mais le message d'erreur suivant apparait "This row already belongs to another table". Ce problème s'explique surement par le fait que les rows pointent sur la table initiale. Dans un second temps,j'ai tenté de copier l'array de DataRow mais le même problème apparait. Enfin j'aurais aimé faire une copie directe des row mais je n'y suis pas parvenu.. Alors si vous avez des idées...Merci d'avance ++ |
|
|
00
|
|
|
#2 |
|
Membre chevronné
![]() ![]() Inscription : février 2003 Messages : 550 ![]() |
la logique pour copier les datarow me parait correcte !!
Est ce que tu peux nous mettre tous le code que tu utilises pour copier les datarow ?
__________________
mon blog informatique http://m-mas.blogspot.com/ MCP VB.NET (70-305) - (70-306) - (70-310) |
|
00
|
|
|
#3 | ||
|
Invité régulier
![]() Inscription : février 2006 Messages : 13 ![]() |
Voici le code qui réalise la copie de l' Array
j'ai laissé le code utilisé pour les autres méthodes j'espère que ce seras suffisament lisible... Code :
|
||
|
|
00
|
|
|
#4 | ||
|
Membre chevronné
![]() ![]() Inscription : février 2003 Messages : 550 ![]() |
je n'ai pas trés bien compris le code et ta question !!
si j'ai bien compris, tu as une collection de Row issue d'une commande Select dans un DataSet, tu veux copier le résultat de ce Select dans une DataTable !! Pour moi, cela mérite 3 lignes de codes !! soit MyArrayRow ta collection de Row récupéré : Code :
__________________
mon blog informatique http://m-mas.blogspot.com/ MCP VB.NET (70-305) - (70-306) - (70-310) |
||
|
00
|
|
|
#5 | |||
|
Invité régulier
![]() Inscription : février 2006 Messages : 13 ![]() |
les Array Contenant les datarow sont définis ainsi:
Code :
TablesArray(4, i) = DS.Tables(TablesArray(0, i)).Select(CurrentFilter) Code :
Citation:
je ne sais pas où est l'erreur. Et désolé si je suis confu |
|||
|
|
00
|
|
|
#6 | ||
|
Membre habitué
![]() Inscription : février 2005 Messages : 239 ![]() |
J'avais eut ce genre de problème, ou il me fallait copier quelques lignes d'une table vers une autre, qui devait avoir la même structure.
Essaye une copie item par item de chacune des DataRow de cette façon: Code :
BonsATraiter est ma DataTable de destination, En gros je créé une nouvelle ligne avec NewRow pour avoir le bon format de ligne (NewBonRow pour moi à cause d'un dataset typé ; mais le principe général y est), ensuite je rempli item par item, puis j'ajoute à ma table destination la nouvelle ligne remplie par un Rows.Add(). |
||
|
|
00
|
|
|
#7 |
|
Invité régulier
![]() Inscription : février 2006 Messages : 13 ![]() |
La copie Item par Item marche très bien.
Merci pour cette aide ++ |
|
|
00
|
|
|
#8 |
|
Invité de passage
![]() |
Je confirme que pour la copie d'une datarow d'une dataSource vers une table cible, il faut passez par un Clone de l'objet Datatable sur un nouvelle objet et ensuite faire la copie item par item dans une nouvelle row de la table cible !
- Item par item car cela évite tout problème si les structures de dataSource <> dataCible - Clone sur un nouvelle object tout simplement car de cette manière cela créer une copie complètement indépendante. Essayé seulement la copie item par item, la copie va se faire mais si vous décidez de supprimer en suite la dataSouce (la ligne row) par l'instruction sur l'objet .delete, vous aurez un beau message qui indiquera que cette action ne peut être faite car cette ligne appartient à une autre table. |
|
|
00
|
Copyright © 2000-2013 - www.developpez.com