C#のDataTableの行を追加/変更/削除するサンプルです。
目次
サンプル | DataTableクラス |
DataTableに行を追加する | |
DataTableの行の値を変更する | |
DataTableの行を削除する | |
DataTableの値を確認する場所 |
DataTableクラス
- メモリ内のテーブルのように使用できます。
- 以下は、MicrosoftのDataTableクラスのリンクです。
https://docs.microsoft.com/ja-jp/dotnet/api/system.data.datatable?view=netcore-3.1
DataTableに行を追加する
DataTableに行を追加するサンプルです。
using System;
using System.Data;
class Test1
{
static void Main()
{
// テーブル作成
DataTable employee = new DataTable("社員テーブル");
employee.Columns.Add("id",typeof(int));
employee.Columns.Add("name", typeof(String));
employee.Columns.Add("romaji", typeof(String));
// 1行目を作成
DataRow row;
row = employee.NewRow();
row["id"] = 1;
row["name"] = "鈴木";
row["romaji"] = "suzuki";
employee.Rows.Add(row); // 1行目をテーブルに追加
// 2行目を作成
row = employee.NewRow();
row["id"] = 2;
row["name"] = "田中";
row["romaji"] = "tanaka";
employee.Rows.Add(row); // 2行目をテーブルに追加
// 3行目を作成
row = employee.NewRow();
row["id"] = 3;
row["name"] = "佐藤";
row["romaji"] = "sato";
employee.Rows.Add(row); // 3行目をテーブルに追加
employee.AcceptChanges();
// ループでデータを取得
foreach (DataRow data1 in employee.Rows)
{
Console.WriteLine(data1["id"]); //1 2 3
Console.WriteLine(data1["name"]); //鈴木 田中 佐藤
Console.WriteLine(data1["romaji"]); //suzuki tanaka sato
}
}
}
9~12行目は、テーブルと列名を作成しています。
16行目は、NewRowメソッドで行を作成しています。
17~19行目は、列名に対して値をセットしています。
20行目は、Addメソッドでテーブルに行を追加しています。
36行目のAcceptChangesでデータをコミット(確定)させます。
39行目からは、foreach文でループさせて値を表示しています。
DataTableの行の値を変更する
DataTableの行の値を変更するサンプルです。上記のコードの続きです。
// 3行目を変更
employee.Rows[2]["name"] = "竹田";
employee.Rows[2]["romaji"] = "takeda";
employee.AcceptChanges();
Console.WriteLine(employee.Rows[0]["name"]); //鈴木
Console.WriteLine(employee.Rows[1]["name"]); //田中
Console.WriteLine(employee.Rows[2]["name"]); //竹田
2,3行目は、テーブルの値を変更しています。Rows[2]は、3行目を表します。
1行目は[0]です。
4行目のAcceptChangesでデータをコミット(確定)させます。
DataTableの行を削除する
DataTableの行を削除するサンプルです。上記のコードの続きです。
// 2行目を削除
employee.Rows[1].Delete();
employee.AcceptChanges();
Console.WriteLine(employee.Rows[0]["name"]); //鈴木
Console.WriteLine(employee.Rows[1]["name"]); //佐藤
2行目は、employee.Rowsの1(2行目)を削除しています。
3行目のAcceptChangesでデータをコミット(確定)させます。
削除後のインデックス値は前につまります。
DataTableの値を確認する場所
DataTableの値は、Rowsの下の結果ビューのItemArray配下にあります。
関連の記事