[Asp.Net]DataTable装置方法


最近、Stackedとグループ化レポートを表示したとき:
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;
        }