投稿者 るきお  (社会人) 投稿日時 2011/11/6 11:47:41
DataGridViewに複数のDataTableを同時に「表示」することはできません。
つまり、DataSetには複数のDataTableが含まれている可能性があるのでDataSetをDataGridViewに渡してあとは自動的に表示されるということはありません。

xvmmtnkさんの例では複数のDataTableを含むDataSetを表示しようとしています。
今回の例ではたまたまDataTableの列が一致しているので、結合して表示してくれてもいいように感じるかもしれませんが、DataSetに含まれているDataTableの列が常に一致しているとは限らず、プログラマー側で表示方法を指定しない限りVBはこれらを自動的に処理してくれません。

技術的に一番簡単な解決方法は、
①単一のDataTableのみ扱いDataGridViewにはDataTableを渡すか、
②表示するDataTableを指定する
方法です。
私は構造的にシンプルな①をお勧めします。

①の例
    
Dim table As New DataTable

table.Columns.Add("TEST"GetType(String))
table.Rows.Add("AAA")
table.Rows.Add("BBB")
table.Rows.Add("CCC")

DataGridView1.DataSource = table


②の例
    
Dim dataset As New DataSet
Dim table As New DataTable("MyTable")

table.Columns.Add("TEST"GetType(String))
table.Rows.Add("AAA")
table.Rows.Add("BBB")
table.Rows.Add("CCC")

dataset.Tables.Add(table)

DataGridView1.DataMember = "MyTable"
DataGridView1.DataSource = dataset