Le tri d'un dataview et son utilisation

Contenu du snippet

Bonjour,

J'ai une base de données avec une table contenant des dates au format string et non date, et je ne peux pas changer le format
Pour travailler, j'utilise un dataset, auquel j'ai ajouté une colonne DateR au format date qui contient les dates formatées en date

Source / Exemple :


'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")

A voir également

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.