Solved

VB.NET Datatable -> how to sort??

Posted on 2014-02-05
7
456 Views
Last Modified: 2014-02-10
Hi guys....

I currently Display what's in my Datatable like this

 Dim DvTheData As New DataView(scorestable)
		
	   For Each dv As DataRowView In DvTheData
    test.Text += dv.row.Item("Score")
Next

Open in new window


Is it possible to sort the results by the column "Time".

The time is sorted by numbers ranging from 0-90
but it also has two letter values which are HT and FT (These are football time)

So i need to be abl to sort it from 0-45 ~ HT~ 46-90 ~ FT ... end result would look like:

1
5
16
35
45
HT
HT
46
49
67
89
FT
0
Comment
Question by:runnerjp2005
  • 4
  • 3
7 Comments
 
LVL 44

Expert Comment

by:AndyAinscow
ID: 39835933
Yes, with a little work.  Are the numbers stored as numbers (eg. integer) or as strings.  Where do the HT and FT come from IF the others are stored as numbers?

What are the other columns in the underlying table (eg an incrementing primary key) ?
0
 

Author Comment

by:runnerjp2005
ID: 39836016
Hi.... its stored at sting due to having the Numbers AND Letters in it...

Table is setout like so:

scorestable = new datatable
	
	scorestable.Columns.Add("HomeTeam", GetType(String))
	scorestable.Columns.Add("Time", GetType(String))
	scorestable.Columns.Add("Score", GetType(String))
	scorestable.Columns.Add("Lastgoaltime", GetType(String))
	scorestable.Columns.Add("FTtime", GetType(String))

Open in new window


scorestable.Columns.Add("Time", GetType(String)) being the one i would like to order by
0
 
LVL 44

Expert Comment

by:AndyAinscow
ID: 39836522
>>scorestable.Columns.Add("Time", GetType(String)) being the one i would like to order by

OK but is the Lastgoaltime going to give the same sort order and wouldn't require further processing ?
0
Space-Age Communications Transitions to DevOps

ViaSat, a global provider of satellite and wireless communications, securely connects businesses, governments, and organizations to the Internet. Learn how ViaSat’s Network Solutions Engineer, drove the transition from a traditional network support to a DevOps-centric model.

 

Author Comment

by:runnerjp2005
ID: 39837075
no thats just filled if the score is over 0-0 to let me know when a goal has been scored...

everything will be up in order by Time...

here is the site:http://jarrattperkins.com/football/test.aspx

should show you how it would be orderd
0
 
LVL 44

Expert Comment

by:AndyAinscow
ID: 39838092
OK, no simple way that I see from that info.

If this is in development and you can implement changes I would suggest adding another column to the underlying table as a primary key which increments.  Then you can sort on that column as it will sort in the order the records were added (chronologically I assume).

If that isn't a possibility then I would suggest creating a second datatable with the same structure.
Now loop through the source datatable and find the earliest record (eg. 1 in your example) and add a copy into the second datatable, now delete that record in the source datatable.  Keep repeating until you have transfered all records into the second datatable with the ordering you desire.
0
 

Author Comment

by:runnerjp2005
ID: 39838191
The datatable is created on page load so it will have a bunch of them loaded together with different times and would be mixed up. I suppose I could create four labors 0-45 lable ht-label and 45-90 lable ending on ft label...with doing that how would I pull all ones between 0-45 and order by number
0
 
LVL 44

Accepted Solution

by:
AndyAinscow earned 500 total points
ID: 39838239
Convert the string to a number value and then use a simple '<' to test.

(I'm still a little puzzled about things in the background, unless this is randomly generated it must be coming from something such as a database or a file.  I am surprised there isn't somewhere a piece of information one could use to simply sort that data.)
0

Featured Post

The New “Normal” in Modern Enterprise Operations

DevOps for the modern enterprise offers many benefits — increased agility, productivity, and more, but digital transformation isn’t easy, especially if you’re not addressing the right issues. Register for the webinar to dive into the “new normal” for enterprise modern ops.

Question has a verified solution.

If you are experiencing a similar issue, please ask a related question

Suggested Solutions

A quick way to get a menu to work on our website, is using the Menu control and assign it to a web.sitemap using SiteMapDataSource. Example of web.sitemap file: (CODE) Sample code to add to the page menu: (CODE) Running the application, we wi…
Problem Hi all,    While many today have fast Internet connection, there are many still who do not, or are connecting through devices with a slower connect, so light web pages and fast load times are still popular.    If your ASP.NET page …
Finds all prime numbers in a range requested and places them in a public primes() array. I've demostrated a template size of 30 (2 * 3 * 5) but larger templates can be built such 210  (2 * 3 * 5 * 7) or 2310  (2 * 3 * 5 * 7 * 11). The larger templa…
In a recent question (https://www.experts-exchange.com/questions/29004105/Run-AutoHotkey-script-directly-from-Notepad.html) here at Experts Exchange, a member asked how to run an AutoHotkey script (.AHK) directly from Notepad++ (aka NPP). This video…

808 members asked questions and received personalized solutions in the past 7 days.

Join the community of 500,000 technology professionals and ask your questions.

Join & Ask a Question