[VB.NET]DataTableの行の値を変更する

2021年11月26日

書式
1.DataTableコンストラクター
DataTable(String)
指定したテーブル名を使用して DataTable クラスの新しいインスタンスを初期化します。

2.DataRow クラス
DataTable 内のデータ行を表します。
メソッド AcceptChanges()
この行に対して行われたすべての変更をコミットします。

3.DataTable.NewRow メソッド
テーブルと同じスキーマで新しい DataRow を作成します。

4.DataTableの行の値を変更します
DataTable名.Rows(位置).Item(カラム名) = 値

使用例

Module Module1

    Public Sub Main()

        'テーブルを作成
        Dim cft As New DataTable("UserTable")

        'テーブルの項目の定義
        cft.Columns.Add("userid")
        cft.Columns.Add("username")
        cft.Columns.Add("city")

        'DataRow変数の宣言
        Dim row As DataRow
        'NewRowメソッドで行を作成
        row = cft.NewRow

        '1行目の値を追加
        row("userid") = "1001"
        row("username") = "山田 太郎"
        row("city") = "東京"
        '1行目をテーブルに追加します
        cft.Rows.Add(row)

        '2行目の値を追加
        row = cft.NewRow
        row("userid") = "2002"
        row("username") = "山田 次郎"
        row("city") = "大阪"

        '2行目をテーブルに追加します
        cft.Rows.Add(row)

        'データをコミットします
        cft.AcceptChanges()

        'for eachループでデータを取得します
        For Each dr As DataRow In cft.Rows
            Console.WriteLine("番号:" & dr("userid").ToString & " " & "名前:" & dr("username").ToString & " " & "都市:" & dr("city").ToString)
        Next

        '2行のデータを変更
        cft.Rows(1).Item("username") = "山崎 太郎"
        cft.Rows(1).Item("city") = "福岡"
        cft.AcceptChanges()
        Console.WriteLine(" ")
        Console.WriteLine("DataTableの行を変更する結果")
        For Each dr As DataRow In cft.Rows
            Console.WriteLine("番号:" & dr("userid").ToString & " " & "名前:" & dr("username").ToString & " " & "都市:" & dr("city").ToString)
        Next

        Console.ReadKey()
    End Sub

End Module

実行結果

番号:1001 名前:山田 太郎 都市:東京
番号:2002 名前:山田 次郎 都市:大阪

DataTableの行を変更する結果
番号:1001 名前:山田 太郎 都市:東京
番号:2002 名前:山崎 太郎 都市:福岡

 

VB.net

Posted by arkgame