none
Renomear um DataTable dentro do Foreach RRS feed

  • Pergunta

  • Olá Pessoal, preciso de uma ajudinha, como faço para renomear um datatable dentro de um foreach.

    Tipo assim, se a minha equipe for diferente cria-se um novo datatable, com outro nome.

    if (AuxIdtbd != null)
                    {
                        vTotEqp = AuxIdtbd.Rows.Count;

                        foreach (DataRow iDr in AuxIdtbd.Rows)
                        {

                            if (vEquipeIde == 0 || vEquipeIde != int.Parse(iDr["EQUIPE"].ToString()))
                            {
                                DtTab = + '_' + vAuxCont.ToString();

                                DataTable _DtSec1 + '' + DtTab.ToString()  = new DataTable();
                                _DtSec1.TableName = iDr["EQUIPE_DSC"].ToString();
                                _DtSec1.Columns.Add(" ");
                                _DtSec1.Columns.Add("  ");
                                _DtSec1.Columns.Add("   ");
                                _DtSec1.Columns.Add("    ");
                                _DtSec1.Columns.Add("PADRÃO");
                                _DtSec1.Columns.Add("PADRÃO ");
                                _DtSec1.Columns.Add("VARIÁVEL");
                                _DtSec1.Columns.Add("VARIÁVEL ");
                                _DtSec1.Columns.Add("FIXO");
                                _DtSec1.Columns.Add("FIXO ");
                                _DtSec1.Columns.Add("TOTALIZADOR");
                                _DtSec1.Columns.Add("TOTALIZADOR ");
                                _DtSec1.Columns.Add("TOTALIZADOR  ");
                                _DtSec1.Columns.Add("TOTALIZADOR   ");
                                _DtSec1.Columns.Add("TOTALIZADOR    ");            

                                vAuxCont = vAuxCont + 1;
                            }

                            vEquipeIde = int.Parse(iDr["EQUIPE"].ToString());
                        }
                        
                    }


    Se ajudei? Marque como util.. Obrigado :D

    terça-feira, 1 de abril de 2014 13:48

Respostas

  • Olá Jaque mas faltou a instancia de seu DataTable a cada iteração ! por ex :

    if (vEquipeIde == 0 || vEquipeIde != int.Parse(iDr["EQUIPE"].ToString()))
                            {
                               //insira a instancia do datatable
                               DataTable dt = new DataTable();
                                dt.Namespace = iDr["EQUIPE_DSC"].ToString();

    • Sugerido como Resposta Giovani Cr terça-feira, 1 de abril de 2014 17:52
    • Marcado como Resposta Jaqueline Rodrigues quinta-feira, 3 de abril de 2014 16:22
    terça-feira, 1 de abril de 2014 16:30

Todas as Respostas

  • Olá isso não é possível, mas qual seria o objetivo de se fazer isso ? Você não desejaria renomear o Namespace de seu DataTable e não o nome da referência ?
    terça-feira, 1 de abril de 2014 13:59
  • É que para cada equipe que irei ter, terá uma informação diferente que preciso jogar em tab diferentes do excel.

    Se ajudei? Marque como util.. Obrigado :D

    terça-feira, 1 de abril de 2014 14:17
  • Renomeie o Namespace então com essa variável pq isso ai não da pra fazer não !

    DataTable dt = new DataTable();
    dt.NameSpace = "SUA VARIAVEL";
    E busque pelo namespace no seu excel.

    terça-feira, 1 de abril de 2014 14:23
  • E como faço com as colunas que tenho que ter esses nomes fixos

    DtSec1.TableName = iDr["EQUIPE_DSC"].ToString();
                                _DtSec1.Columns.Add(" ");
                                _DtSec1.Columns.Add("  ");
                                _DtSec1.Columns.Add("   ");
                                _DtSec1.Columns.Add("    ");
                                _DtSec1.Columns.Add("PADRÃO");
                                _DtSec1.Columns.Add("PADRÃO ");
                                _DtSec1.Columns.Add("VARIÁVEL");
                                _DtSec1.Columns.Add("VARIÁVEL ");
                                _DtSec1.Columns.Add("FIXO");
                                _DtSec1.Columns.Add("FIXO ");
                                _DtSec1.Columns.Add("TOTALIZADOR");
                                _DtSec1.Columns.Add("TOTALIZADOR ");
                                _DtSec1.Columns.Add("TOTALIZADOR  ");
                                _DtSec1.Columns.Add("TOTALIZADOR   ");
                                _DtSec1.Columns.Add("TOTALIZADOR    ");   


    Se ajudei? Marque como util.. Obrigado :D

    terça-feira, 1 de abril de 2014 14:36
  • Deixe assim mesmo troque apenas a propriedade NameSpace as colunas vc deixa tudo igual.
    terça-feira, 1 de abril de 2014 14:41
  • Fiz assim porém quando muda de equipe, tenho que criar outra tab no excel com os mesmos nomes de coluna. 

    Porém apresenta uma mensg. uma coluna chamada "" já pertence a esse datatable.

    Por isso que disse que tinha que criar datatables conforme o meu for.

    foreach (DataRow iDr in AuxIdtbd.Rows)
                        {
                            if (vEquipeIde == 0 || vEquipeIde != int.Parse(iDr["EQUIPE"].ToString()))
                            {
                                dt.Namespace = iDr["EQUIPE_DSC"].ToString();
                                dt.Columns.Add(" ");
                                dt.Columns.Add("  ");
                                dt.Columns.Add("   ");
                                dt.Columns.Add("    ");
                                dt.Columns.Add("PADRÃO");
                                dt.Columns.Add("PADRÃO ");
                                dt.Columns.Add("VARIÁVEL");
                                dt.Columns.Add("VARIÁVEL ");
                                dt.Columns.Add("FIXO");
                                dt.Columns.Add("FIXO ");
                                dt.Columns.Add("TOTALIZADOR");
                                dt.Columns.Add("TOTALIZADOR ");
                                dt.Columns.Add("TOTALIZADOR  ");
                                dt.Columns.Add("TOTALIZADOR   ");

                                iDrAuxAnd = dt.NewRow();

                                iDrAuxAnd[" "] = "MÊS";
                                iDrAuxAnd["  "] = "SIGLA";
                                iDrAuxAnd["   "] = "CATEGORIA";
                                iDrAuxAnd["    "] = "CAT. - R$";
                                iDrAuxAnd["PADRÃO"] = "HORAS";
                                iDrAuxAnd["PADRÃO "] = "VALOR - R$";
                                iDrAuxAnd["VARIÁVEL"] = "HORAS";
                                iDrAuxAnd["VARIÁVEL "] = "VALOR - R$";
                                iDrAuxAnd["FIXO"] = "HORAS";
                                iDrAuxAnd["FIXO "] = "VALOR - R$";
                                iDrAuxAnd["TOTALIZADOR"] = "TOTAL HORAS PROD.";
                                iDrAuxAnd["TOTALIZADOR "] = "TOTAL R$ POT.";
                                iDrAuxAnd["TOTALIZADOR  "] = "META";
                                iDrAuxAnd["TOTALIZADOR   "] = "P.I.";

                                vEquipeIde = int.Parse(iDr["EQUIPE"].ToString());

                                //INCLUI INFORMAÇÕES NAS COLUNAS
                                pInclueDataTable_Rel_HorasProdutivas(vEquipeIde);

                                vAuxCont = vAuxCont + 1;
                            }                    
                        }                     

                                                            

    Se ajudei? Marque como util.. Obrigado :D

    terça-feira, 1 de abril de 2014 16:25
  • Olá Jaque mas faltou a instancia de seu DataTable a cada iteração ! por ex :

    if (vEquipeIde == 0 || vEquipeIde != int.Parse(iDr["EQUIPE"].ToString()))
                            {
                               //insira a instancia do datatable
                               DataTable dt = new DataTable();
                                dt.Namespace = iDr["EQUIPE_DSC"].ToString();

    • Sugerido como Resposta Giovani Cr terça-feira, 1 de abril de 2014 17:52
    • Marcado como Resposta Jaqueline Rodrigues quinta-feira, 3 de abril de 2014 16:22
    terça-feira, 1 de abril de 2014 16:30