[Asp.Net]DataTable装置方法
最近、Stackedとグループ化レポートを表示したとき:
DTの転置書き込みを行うには、次のような方法が必要です.
DTの転置書き込みを行うには、次のような方法が必要です.
/// <summary>
/// DataTable
/// </summary>
public static DataTable Transpose(DataTable dt_orig,string column)
{
//
DataTable newdt= new DataTable();
newdt.Columns.Add(new System.Data.DataColumn(column, typeof(System.String)));
//
//
//DataTable dt_orig = (DataTable)ViewState["dt_orig"];
for (int i = 0; i < dt_orig.Rows.Count; i++)
{
string rowname = dt_orig.Rows[i][0].ToString().Trim();
//string colname = dt_orig.Columns[i].ColumnName; // i+1
newdt.Columns.Add(new System.Data.DataColumn(rowname, typeof(System.Decimal)));
}
//
for (int j = 1; j < dt_orig.Columns.Count; j++)//
{
DataRow dr = newdt.NewRow();
dr = newdt.NewRow();
dr[0] = dt_orig.Columns[j].ColumnName.ToString();
for (int k = 1; k <= dt_orig.Rows.Count; k++)
{
dr[k] = dt_orig.Rows[k - 1][j].ToString();
}
newdt.Rows.Add(dr);
}
return newdt;
}