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 : Sélectionner tout - Visualiser dans une fenêtre à part
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 : Sélectionner tout - Visualiser dans une fenêtre à part
Dtt_extract.ImportRow(ro)
au lieu de
Code : Sélectionner tout - Visualiser dans une fenêtre à part
Dtt_extract.Rows.Add(ro)
Et la je récupère toujours la premier ligne trouvée, jamais les suivantes...


Seconde solution
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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.