Ci sono un paio di modi per farlo:
Fare un complesso di Query SQL, che raggruppa i dati necessari, utilizzando i Join e altri modi di dati dell'unione.
Il più semplice e il modo peggiore di come farlo - è quello di estendere la tabella dei dati manualmente:
dataTable.Columns.Add(new DataColumn("newColumn", typeof(string)));
Questo si aggiorna automaticamente una DataGridView in forma. E allora si avrà bisogno di aggiungere nuovi dati del nuovo DataTable colonna manualmente.
Preferisco lavorare con dataGridView basati su modelli. È necessario creare una classe che rappresenta il vostro modello. Come class Person
con le proprietà: Name, Age, etc.
E quindi impostare questo elenco come origine dati.
List<Person> listOfPersons = new();
dataGridView1.AutoGenerateColumns = true;
dataGridView1.DataSource = new BindingSource() { DataSource = listOfPersons};
Il problema principale - è necessario analizzare i dati di un database per il modello di formato.
In realtà, questo è dove ORM (Object-Relational Mapping) è utile. Ci sono un paio di soluzioni pronte, come Dapper. Semplificherà la vostra vita)