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

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

注意:ここで紹介しているDataGridは、System.Windows.Forms名前空間のDataGrid(Windowsフォーム)です。System.Web.UI.WebControls名前空間のDataGrid(Webフォーム)ではありません。

ある列の値を使って計算した結果で新しい列を作成したり、リレーションシップ(または列)による集約(和、平均、最小、最大、カウント、統計標準偏差、統計分散)を使って新しい列を作成するには、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;

注意:この記事では、基本的な事柄の説明が省略されているかもしれません。初心者の方は、特に以下の点にご注意ください。

  • .NET Tipsをご利用いただく際は、注意事項をお守りください。