度忘れすることが多い(?)、DataTable の作成(初期化)方法。
基本的な流れとしては、
数値型や日付型なら有効な日付を入力しないとエラーで落ちる。
基本的な流れとしては、
- インスタンス化。
- テーブル列定義。
- テーブル行にデータ追加。
- DataTable 自体に追加。
である。
// DataTable 作成。
var dt = new DataTable();
// 行定義
// このセクションを無視すると、列 ' ' はテーブル に属していません。というエラーが出る。
dt.Columns.Add("Name", typeof(string)); // 文字列
dt.Columns.Add("Score", typeof(int)); // 数値
dt.Columns.Add("Entry", typeof(DateTime)); // 日付
// 行追加
var dr = dt.NewRow();
dr["Name"] = "ほげ太郎";
dr["Score"] = "100";
dr["Entry"] = DateTime.Now;
dt.Rows.Add(dr);
var dr2 = dt.NewRow();
dr2["Name"] = "ほげ次郎";
dr2["Score"] = "40";
dr2["Entry"] = DateTime.MinValue;
dt.Rows.Add(dr2);
// GridView にバインド
GridView1.DataSource = dt;
GridView1.DataBind();
行の定義で定義した型を順守する。数値型や日付型なら有効な日付を入力しないとエラーで落ちる。
' DataTable 作成。
Dim dt = New DataTable()
' 行定義
dt.Columns.Add("Name", GetType(String))
dt.Columns.Add("Score", GetType(Integer))
dt.Columns.Add("Entry", GetType(DateTime))
' 行追加
Dim dr = dt.NewRow()
dr("Name") = "ほげ太郎"
dr("Score") = "100"
dr("Entry") = DateTime.Now
dt.Rows.Add(dr)
- VBではこんな感じ。