Level Extreme platform
Subscription
Corporate profile
Products & Services
Support
Legal
Français
Sorting a dataset
Message
From
17/07/2013 21:49:50
 
 
To
17/07/2013 14:51:34
General information
Forum:
ASP.NET
Category:
Other
Environment versions
Environment:
VB 9.0
OS:
Windows 7
Network:
Windows 2003 Server
Database:
MS SQL Server
Application:
Web
Miscellaneous
Thread ID:
01578641
Message ID:
01578676
Views:
43
>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.
Previous
Next
Reply
Map
View

Click here to load this message in the networking platform