Extraire x lignes d'un datatable vers un autre
Slt,
je viens vous exposer mon problème en espérant avoir un petit éclaircissement.
j'ai actuellement un DataSet avec une datatable contenant l'ensemble du contenu de la table correspondante dans la DB
j'essaye d'extraire X lignes de ce datatable et de les copier dans un autre Datatable afin de l'utilisé dans un combobox
j'ai en fait 2 combobox , l'un reduit le contenu de l'autre
il est important que je garde le contenu du 1er datatable complet pour la prochaine sélection.
j'ai essayé ces 2 solutions et j'obtiens 2 messages d'erreur différents...
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13
| Dtt_extract = DTS_Dico.Tables("MaTable").Clone
For Each r As DataRow In DTS_Dico.Tables("MaTable").Rows
If r.Item("Moncritere") = MaCb.SelectedValue Then
Dim ro As DataRow = Dtt_extract.NewRow
ro = r
Dtt_extract.Rows.Add(ro)
End If
Next |
j'obtiens le message : " Cette lignes appartient déjà à une autre table"
Bizarre je viens de la créer...
Peut être y a t il une référence dans la ligne copiée qui fais croire à la nouvelle qu'elle est déjà associée ailleurs ?
j'ai également essayer
Code:
Dtt_extract.ImportRow(ro)
au lieu de
Code:
Dtt_extract.Rows.Add(ro)
Et la je récupère toujours la premier ligne trouvée, jamais les suivantes...
Seconde solution
Code:
1 2 3 4 5 6 7 8 9 10 11 12
| Dtt_extract = DTS_Dico.Tables("MaTable").Clone
For Each r As DataRow In DTS_Dico.Tables("MaTable").Rows
If DTS_Dico.Tables("MaTable").Select("MonCritere=" & MaCb.SelectedValue)(i).Item("MonCritere") = MaCb.SelectedValue Then
Dtt_extract.Rows.Add(DTS_Dico.Tables("MaTable").Select("MonCritere=" & MaCb.SelectedValue)(i).ItemArray)
End If
i += 1
Next |
Ici tout fonctionne bien je récupère bien mes X lignes correspondantes à mon critère, le problème est le i+=1 qui arrive en dehors de la limite lorsque mon critère n'est plus trouvé...
Quelqu'un aurai une autre idée ou pourrait me dire comment amélioré l'une de ces 2 boucles ?
Merci.;)