[C#] DataTable の作成
度忘れすることが多い(?)、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ではこんな感じ。