Comment puis-je trier un datatable

Comment puis-je trier un datatable? J'ai besoin de revenir un datatable à partir d'une fonction. J'ai été aux prises avec cela pendant des heures, et de l'internet a un peu de réponses différentes, dont aucune ne semble fonctionner pour moi.

Edit: j'ai envie de frapper moi-même. Faire un DataView.Tri sur votre table, puis un DataView.ToTable() pour mettre les données triées dans un nouveau jeu de données...
Exemple:

Dim view As New DataView(OriginalDataSet) 'Put your original dataset into a dataview
view.Sort = "ColumnName" ' Sort your data view
Dim NewDataSet As DataTable = view.ToTable() ' Put your dataview into a new datatable

Fin de l'exemple

J'ai un relativement simple exemple, le tableau ci-dessous, prise à partir d'un enseignement de site web. Le seul hic, c'est qu'il y a des valeurs en double dans la ligne je suis en train de trier.

Module Module1

    Sub Main()
    ' Get a DataTable instance from helper function.
    Dim table As DataTable = GetTable()
    End Sub

    ''' <summary>
    ''' Helper function that creates new DataTable.
    ''' </summary>
    Function GetTable() As DataTable
    ' Create new DataTable instance.
    Dim table As New DataTable
    ' Create four typed columns in the DataTable.
    table.Columns.Add("Dosage", GetType(Integer))
    table.Columns.Add("Drug", GetType(String))
    table.Columns.Add("Patient", GetType(String))
    table.Columns.Add("Date", GetType(DateTime))
    ' Add five rows with those columns filled in the DataTable.
    table.Rows.Add(25, "Indocin", "David", DateTime.Now)
    table.Rows.Add(50, "Enebrel", "Sam", DateTime.Now)
    table.Rows.Add(10, "Hydralazine", "Christoff", DateTime.Now)
    table.Rows.Add(21, "Combivent", "Janet", DateTime.Now)
    table.Rows.Add(100, "Dilantin", "Melanie", DateTime.Now)
table.Rows.Add(21, "Aspirin", "Janet", DateTime.Now)
    Return table
    End Function

End Module

J'ai essayé de sélectionner dans un tableau, puis une boucle dans le tableau et de mettre chaque ligne dans une nouvelle table de données, mais l'sélectionnez n'est pas l'accaparement des lignes. Exemple:

drarray = ds.Sélectionnez("je veux sélectionner tous ici", "MySortColumn")

J'ai essayé différents bouclage des stratégies, à l'intérieur des boucles, etc et ne semblent pas comprendre cela.

J'ai essayé dataTable.DefaultView.Tri = "sortExp" mais je ne peux pas obtenir que cela fonctionne.

Donc ce qui me manque? Je figure avec la DefaultView et choisir les méthodes, je suis juste en manque de quelque chose syntactly.

Alors, quelle est la meilleure façon de le faire, et ce qui me manque?

  • Merci. J'ai trouvé le modifier pour être utile.
InformationsquelleAutor BClaydon | 2013-10-21