Мне нужно отобразить Топ-n фильмов на основе их количества отзывов и перечислить их в порядке убывания, основываясь на отзывах, и я смог до сих пор это сделать:
string mySql = "SELECT Movies.MovieName, COUNT(Reviews.MovieID) AS
NumberOfReviews FROM Reviews INNER JOIN Movies ON Movies.MovieID =
Reviews.MovieID GROUP BY MovieName";
///Sets up the connection to the server
OleDbConnection db = new OleDbConnection();
db.ConnectionString = FormMainMenu._DBConnectionInfo;
//open database
db.Open();
OleDbCommand cmd = new OleDbCommand(mySql, db);
//Creates a data set out of the data
OleDbDataAdapter adapter = new OleDbDataAdapter(mySql, db);
DataSet ds = new DataSet();
//Fills the table
adapter.Fill(ds);
DataTable dt = ds.Tables["TABLE"]; //Creates a datatable of all the movies in the database
BindingSource bindingSource = new BindingSource();
bindingSource.DataSource = dt;
dataGridView1.DataSource = bindingSource;
adapter.Update(ds);
//close the database
db.Close();
Что я могуне работает, где поместить TOP только в список, скажем 5 или 10 и т. д. в DataTable, и заставить ORDER BY работать
Использование базы данных Access