DataSet et BindingSource

cs_Jaxom Messages postés 29 Date d'inscription lundi 13 mai 2002 Statut Membre Dernière intervention 22 mars 2013 - 18 juin 2009 à 11:52
cs_Jaxom Messages postés 29 Date d'inscription lundi 13 mai 2002 Statut Membre Dernière intervention 22 mars 2013 - 18 juin 2009 à 12:10
Bonjour,

Bon,

J'ai un Dataset avec une superbe table dedans
J'ai un DatagridView avec les données de la table précitée grâce à un non moins superbe Databindings qui me permet de trier et de filtrer... Bref, jusque là... le bonheur.

Par contre, j'ai aussi 3 boutons Ajouter/Modifier/supprimer qui doivent envoyer le record en cours à une autre fenêtre.



Si je n'ai pas de problème pour ajouter:

Dim xex As DataRow = MembresDataSet.Tables(0).NewRow
dim zz as frm_Detail = new frm_Detail
zz.ShowPhil(xex)

Je voudrais savoir comment dans le cas du modifier/Supprimer je peux retrouver mon record, puisque databindings.current est un DataRowView et non un DataRow

J'ai bien trouvé un moyen avec la fonction suivante:

Public Function DB_GetRecordDataSet(ByVal Index As String, ByVal Table As DataTable) As DataRow
For Each xx As DataRow In Table.Rows
If xx.Item("Affilies_Id") = Index Then
Return xx
End If
Next
End Function

Mais comme j'ai plus de 100.000 record, c'est long

N'y-a-t-il pas un machin dans le databindings qui permette de pointer vers l'enregistrement de la datatable?

J'ai essayé ça aussi mais ça marche pas par contre

Dim yy As DataRow = MembresDataSet.Tables("Tbl_Affilies").NewRow
For i As Int32 = 0 To yy.ItemArray.Count - 1
yy.ItemArray(i) = Tbl_AffiliesBindingSource.Current.item(i)
Next

je pense que si je remplace la boucle par

yy.ItemArray(0) = Tbl_AffiliesBindingSource.Current.item("Id")
yy.ItemArray(1) = Tbl_AffiliesBindingSource.Current.item("Nom")
ETC...

Ca devrait marcher; mais j'ai plus de 50 champs; j'en ai déjà mal aux doigts rien que d'y penser.

Un âme érudie et charitable pour m'aider?

Un grand merci d'avance.









-Perdu dans les méandres de la création virtuelle-

2 réponses

cs_Jaxom Messages postés 29 Date d'inscription lundi 13 mai 2002 Statut Membre Dernière intervention 22 mars 2013
18 juin 2009 à 12:08
-= Perdu dans les méandres de la création virtuelle =-
0
cs_Jaxom Messages postés 29 Date d'inscription lundi 13 mai 2002 Statut Membre Dernière intervention 22 mars 2013
18 juin 2009 à 12:10
Bon, j'ai finalement opté pour ça:

Dim yy As DataRow = MembresDataSet.Tables("Tbl_Affilies").NewRow
For i As Int32 = 0 To MembresDataSet.Tables("Tbl_Affilies").Columns.Count - 1
yy.Item(i) = Tbl_AffiliesBindingSource.Current.item(i)
Next

Ca fonctionne mais bon, je trouve pas ça très "propre"...
0
Rejoignez-nous