DOBON.NET プログラミング道: .NET Framework, VB.NET, C#, Visual Basic, Visual Studio, インストーラ, ...

DOBON.NET

DataGridで計算列、集約列を作成する

ある列の値を使って計算した結果で新しい列を作成したり、リレーションシップ(または列)による集約(和、平均、最小、最大、カウント、統計標準偏差、統計分散)を使って新しい列を作成するには、DataColumn.Expressionプロパティを使用します。式の書き方や使える関数など、DataColumn.Expressionプロパティの詳細につきましてはDataColumn.Expression プロパティをご覧ください。

次の例では列"Column1"の値を2倍した値が列"Column2"になるようにしています。

[VB.NET]
'DataTableオブジェクトの作成
Dim dt As DataTable
dt = New DataTable("DataTable1")

'はじめの列を作成
Dim dc As DataColumn
dc = New DataColumn("Column1", GetType(Integer))
dt.Columns.Add(dc)

'計算列の作成
'"Column1"を2倍した値の列とする
dc = New DataColumn("Column2", GetType(Integer))
dc.Expression = "Column1 * 2"
dt.Columns.Add(dc)

'列を追加する
'"Column1"が123、"Column2"が246となる
Dim dr As DataRow
dr = dt.NewRow()
dr(0) = 123
dt.Rows.Add(dr)

'DataTableに連結する
DataGrid1.DataSource = dt
[C#]
//DataTableオブジェクトの作成
DataTable dt;
dt = new DataTable("DataTable1");

//はじめの列を作成
DataColumn dc;
dc = new DataColumn("Column1", typeof(int));
dt.Columns.Add(dc);

//計算列の作成
//"Column1"を2倍した値の列とする
dc = new DataColumn("Column2", typeof(int));
dc.Expression = "Column1 * 2";
dt.Columns.Add(dc);

//列を追加する
//"Column1"が123、"Column2"が246となる
DataRow dr;
dr = dt.NewRow();
dr[0] = 123;
dt.Rows.Add(dr);

//DataTableに連結する
DataGrid1.DataSource = dt;