Plateforme Level Extreme
Abonnement
Profil corporatif
Produits & Services
Support
Légal
English
Sorting a dataset
Message
De
17/07/2013 21:49:50
 
 
À
17/07/2013 14:51:34
Information générale
Forum:
ASP.NET
Catégorie:
Autre
Versions des environnements
Environment:
VB 9.0
OS:
Windows 7
Network:
Windows 2003 Server
Database:
MS SQL Server
Application:
Web
Divers
Thread ID:
01578641
Message ID:
01578676
Vues:
42
>I have this weird situation that I just found and I would like to know if some of you knows something about it.
>
>In my data class, since five years, I have the ability to define a sort field on a dataview. Then, I can scan the dataset rows and they appear in the order of the sort. This has worked well so far but they all have one thing in common. Wherever I was using that, so far, in several applications, it was always on a dataset that I created all the rows manually. Those dataset were not created from a SQL select. So, doing this:
>
>
>        Public oDataSet As DataSet = New DataSet
>        Private oDataView As DataView = New DataView
>
>            oDataSet.Tables.Add("Temp")
>
>            oDataSet.Tables(0).Columns.Add("Extension", GetType(System.String))
>            oDataSet.Tables(0).Columns.Add("LastUpdate", GetType(System.DateTime))
>            oDataSet.Tables(0).Columns.Add("Name", GetType(System.String))
>            oDataSet.Tables(0).Columns.Add("Size", GetType(System.Int32))
>            oDataSet.Tables(0).Columns.Add("JustName", GetType(System.String))
>            oDataSet.Tables(0).Columns.Add("CreationTime", GetType(System.DateTime))
>
>            ' Create the view
>            oDataView = oDataSet.Tables(0).DefaultView
>
>            ' Sort the dataset into the primary key
>            oData.oDataView.Sort = "AI"
>
>            ' For each record
>            For lnCounter = 0 To oData.nCount - 1
>                loRow = oData.oRows(lnCounter)
>
>            Next
>
>
>...is working ok.
>
>But, if I create the dataset from a SQL select such as:
>
>
>                Using loSQLConnection As New SqlConnection(oApp.aConnection(nConnectionString, 1))
>                     oCommand.Connection = loSQLConnection
>                     oDataAdapter.Fill(oDataSet)
>                End Using
>
>                ' Adjust to our default name
>                oDataSet.Tables("Table").TableName = "Temp"
>
>                ' Record count
>                nCount = oDataSet.Tables("Temp").Rows.Count
>
>                oDataView = New DataView
>
>                ' If we have no record
>                If nCount = 0 Then
>                    oRows = Nothing
>                Else
>                    oDataView = oDataSet.Tables("Temp").DefaultView
>                    oRows = oDataSet.Tables("Temp").Rows()
>                End If
>
>                ' Sort the dataset into the primary key
>                oData.oDataView.Sort = "AI"
> 
>                ' For each record
>                For lnCounter = 0 To oData.nCount - 1
>                    loRow = oData.oRows(lnCounter)
>
>                Next
>
>
>...this will not work. I would have to do this in order for the sort to work:
>
>
>        For Each loRowView In oData.oDataView
>        Next
>
>
>Anyone knows why I am forced to use the oData.oDataView approach to have my For Next to scan the records in the sort order when this is build from a SQL select and can obtain the sorting directly from the oDataSet.oRows when I create the dataset manually?

I've always used the dataview as the source of sorted rows.
I wasn't aware that there was another way to look at sorted datatables.
Anyone who does not go overboard- deserves to.
Malcolm Forbes, Sr.
Précédent
Suivant
Répondre
Fil
Voir

Click here to load this message in the networking platform