VB.NET DataGridView DataTable バインド 反映 コピー 変換 更新 表示 追加

データテーブルをDataGridViewにバインド、表示する方法

DataTableのデータをDataGridViewへバインドし、表示する方法です。

Public Class Form1
    Private Sub Form1_Load(sender As Object, e As EventArgs) Handles MyBase.Load
        'ユーザーからのデータ追加を不可にしておく
        DataGridView1.AllowUserToAddRows = False

        'DataTable作成
        Dim dt As New DataTable("商品マスタ")
        dt.Columns.Add("No")
        dt.Columns.Add("商品名")
        dt.Columns.Add("製造元")
        dt.Columns.Add("価格")

        '行データ
        Dim dtRow As DataRow

        '1行目
        dtRow = dt.NewRow
        dtRow("No") = "1"
        dtRow("商品名") = "商品A"
        dtRow("製造元") = "製造元A"
        dtRow("価格") = "1000"
        dt.Rows.Add(dtRow)

        '2行目
        dtRow = dt.NewRow
        dtRow("No") = "2"
        dtRow("商品名") = "商品B"
        dtRow("製造元") = "製造元B"
        dtRow("価格") = "3000"
        dt.Rows.Add(dtRow)

        DataGridView1.DataSource = dt

    End Sub

End Class

データテーブルを作成した後、
DataGridView.Datasourceにデータテーブルを指定してやればOKです。

これでDataGridViewの中にデータテーブルが表示されます。

とても簡単ですね。

上記のように表示された後、
DataGridView.Datasourceに違うデータテーブルを指定すれば、
今表示されているデータテーブルのデータが無くなり、
新しく指定されたデータテーブルが表示されます。

データテーブルのバインドを解除する方法

DataGridView.Datasourceにデータテーブルをバインドしている場合の
バインドの解除方法は、
DataGridView.Datasource = Nothing と書きます。

こうする事で、DataGridViewの表示がクリアされ、
バインドが解除されます。

DataGridView.Datasourceにデータテーブルをバインドしている場合に
DataGridView.Rows.Clear()と書いたり、
DataGridView.Columns.Clear()と書くと、
予期しないエラーが発生する恐れがあるようです。