Fügt man ein neue Datenquelle dynamisch im Code dem DataGridView hinzu, werden automatisch erstmal alle Spalten angezeigt:
dataGridViewSpam.DataSource = _dsSpam;
dataGridViewSpam.DataMember = "spam";
Um Spalten nicht anzuzeigen, kann man anschließend diese Spalten ausblenden:
dataGridViewSpam.Columns["content"].Visible = false;
Die Spalte hat hierbei den gleichen Namen wie das Datenfeld aus der SQL-Abfrage.