I have a two column table containing CustomerName and Age columns. I have all the data in a DataTable. I want to sort it by descending Age and then each age group is sorted by name. So all people aged 30 will be sorted alpabetically and be between lists of people aged 29 and 31 etc.
I have:
string selectStatement = "Age";
string sortStatement = "Age DESC"
var rows = table.Select(selectStatement, sortStatement);
This should sort by age. I haven't figured out how to sort each age group alphabetically but the above throws an exception:
Filter expression 'Age' does not evaluate to a Boolean term.
C programming language is a machine-independent programming language that is mainly used to create many types of applications and operating systems such as Windows, and other complicated programs such as the Oracle database, Git, Python interpreter, and games and is considered a programming foundation in the process of ...
Compared to other languages—like Java, PHP, or C#—C is a relatively simple language to learn for anyone just starting to learn computer programming because of its limited number of keywords.
What is C? C is a general-purpose programming language created by Dennis Ritchie at the Bell Laboratories in 1972. It is a very popular language, despite being old. C is strongly associated with UNIX, as it was developed to write the UNIX operating system.
In the real sense it has no meaning or full form. It was developed by Dennis Ritchie and Ken Thompson at AT&T bell Lab. First, they used to call it as B language then later they made some improvement into it and renamed it as C and its superscript as C++ which was invented by Dr.
Like @adrift said. You should send a filter expression (which evaluates to boolean) as a first argument. Try to send null and an empty string there, maybe Select will ignore the argument. Or give it some trivial expression like 0<1. And then in the order by part, you can just seperate several fields by commas: "Age Desc, Name".
But even better, you should use DataView class. Like this:
var dt = new DataTable(); // your data.
var view = new DataView(dt);
view.Sort = "Age desc, Name asc";
Then you can set this class as a datasource for some controls, etc. It will return rows in correct order. Or you can simply use foreach to iterate over rows.
foreach (DataRowView dr in view)
{
//do what you like
}
The first argument to Select
should be a filter expression, not a list of columns to select.
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With