terça-feira, 15 de dezembro de 2015

Datatable - Transformar colunas em linhas

        public static DataTable Transformar_Colunas_Em_Linhas(DataTable iDt)
        {
            //gera o erro no datagridview "A soma dos valores FillWeight das colunas não pode ultrapassar 65535." - "Sum of the columns' FillWeight values cannot exceed 65535"
            if (iDt.Rows.Count > 0)
            {
                DataTable iDtId = new DataTable();
                iDtId.Columns.Add("Campo");
                iDtId.Columns.Add("Valor");

                for (int i = 1; i < iDt.Rows.Count; i++)
                    iDtId.Columns.Add("Valor_" + (i+1).ToString());

                foreach (DataColumn iDc in iDt.Columns)
                {
                    DataRow iDr = iDtId.NewRow();
                    iDr["Campo"] = iDc.ColumnName.ToString();
                    iDr["Valor"] = iDt.Rows[0][iDc.ColumnName].ToString();
                    for (int i = 1; i < iDt.Rows.Count; i++)
                    {
                        iDr["Valor_" + (i + 1).ToString()] = iDt.Rows[i][iDc.ColumnName].ToString();
                    }
                    iDtId.Rows.Add(iDr);
                }
                return iDtId;
            }
            return null;
        }

Nenhum comentário:

Postar um comentário