Windows FormのDataGridView .Net Framework 4.7.2 にて
DataGridViewでDataSourceにDataTableを代入して利用する。
dataGridView1.DataSource = dt1;
1回目に列名2020/1,2020/2,2020/3,2020/4 の4つの列名を含むDataTableを設定。その後2019/10,2019/11,2019/12,2020/1 の4つを列名に含むDataTableを渡すと、重複する2020/1が 先頭に表示されてしまう。DataSource自体は全く別のオブジェクトなのだが、DataGridView側で前回のColumn情報を覚えていて、列名がマッチしたら使いまわしているのかもしれない。
対策としては、DataSourceに代入する前に
dtaGridView1.Columns.Clear();
を実行すればよい。