Soyez le premier à donner votre avis sur cette source.
Snippet vu 12 887 fois - Téléchargée 28 fois
'Connexion et remplissage du dataset Dim sSql As String sSql = "Select * From maTable" Dim mAdap As New OdbcDataAdapter(sSql, OdbcConn) Dim sqlBuilder As OdbcCommandBuilder = New OdbcCommandBuilder(mAdap) Dim mDSet As New DataSet mAdap.Fill(mDSet) 'ajout d une colonne DateR qui represente la date au format de date et non au format string Dim mNewCol As DataColumn = mDSet.Tables(0).Columns.Add("dateR", GetType(Date), "") 'conversion de la date string jj-mm-aaaa au format date avec la méthode convChaineToDate 'remplissage de la colonne associee dateR Dim iIndex As Int32 = mDSet.Tables(0).Columns.IndexOf("Date") Dim mLin As DataRow For Each mLin In mDSet.Tables(0).Rows Dim newDate As Date = convChaineToDate(mLin(iIndex)) mLin.Item("DateR") = newDate Next 'creation d un dataView pour trier la table MaTable 'par odre croissant des dates réelles = dateR mDSet.Tables(0).DefaultView.Sort = "dateR ASC" mDSet.AcceptChanges() vueTriee = mDSet.Tables(0).DefaultView 'Ensuite j'ai une méthode qui lie cette dataView vueTriee 'Justement pour lire une dataView triée il faut utiliser DataRowView et non DataRow Car avec dataRow on lit la dataView non triée ex pour lire la colonne dateR, Dim nbRows As Int32 = vueTriee.Table.Rows.Count() Dim unrow As DataRowView Dim dDate As Date For i = 0 To nbRows - 1 unrow = vueTriee.Item(i) dDate = row.Item("dateR") Next 'ou une autre colonne val = row.Item("Nom colonne")
Pour le moment je n'ai rien compris en lisant, mais c'est peut-être normal :)
Demain ou après-demain je vais tâcher de me réimprégner du problème, histoire de voir ce qu'apporte cette liaison.
Effectivement je suis d'accord avec JoBleu.
Bon j'ai eu le même problème que vous et j'ai enfin trouvé la solution, (c'est peut être pas la meilleur mais ça fonctionne) :
J'ai 2 bases de données différentes avec 2 tables identiques :
je monte les 2 tables dans 2 DataSet
DS1 et DS2
On fusion les 2 DataSet par la commande :
ds1.merge(ds2)
Maintenant j'ai un problème de tri de données dans le DataSet. Pour régler le problème je crée un nouveau DataSet DS3 dans le quel je copie les données triées :
ds3.merge(ds1.Tables(0).Select("", "mon_champ_à_trier ASC"))
Maintenant mon DataSet DS3 a toute les données triées.
+
Elle est bien référencée, alors qu'elle n'apporte rien.
Cinq ans plus tard je cherche comment trier une liste avec un DataView, alors fatalement je tombe ici où je perds mon temps. Personne n'a jugé utile de confirmer à ManuAntibes que DataTable.DefaultView retourne une DataView, et ceci illustre le fond du problème : personne n'a jamais cherché à faire tourner ce code avant de le publier, sinon le compilateur aurait dit stop.
Comment déclarer "vueTriee" ???
dim vueTriee as ???
Merci
Vous n'êtes pas encore membre ?
inscrivez-vous, c'est gratuit et ça prend moins d'une minute !
Les membres obtiennent plus de réponses que les utilisateurs anonymes.
Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.
Le fait d'être membre vous permet d'avoir des options supplémentaires.