Criando um temporário DataTable gerando erro (Referência de objeto não definida para uma instância de um objeto)

27/02/2014

0

Amigos

Veja se podem me ajudar, tenho a necessidade de criar um DataTable temporário , estou fazendo assim:
Agradeço a ajuda!


        if (!IsPostBack)
            {
                //dataTable para guarda dados temporario
                dtb = new DataTable();
                dtb = CriaDataTable();
                Session["mDatatable"] = dtb;
                GridResumoTotal.DataSource = ((DataTable)Session["mDatatable"]).DefaultView;
                GridResumoTotal.DataBind();

}

        //criar um DataTable temporário
        private DataTable CriaDataTable()
        {
            DataTable mDataTable = new DataTable();
            DataColumn mDataColumn;

            mDataColumn = new DataColumn();
            mDataColumn.DataType = Type.GetType("System.String");
            mDataColumn.ColumnName = "CODIGO";
            mDataTable.Columns.Add(mDataColumn);

            mDataColumn = new DataColumn();
            mDataColumn.DataType = Type.GetType("System.String");
            mDataColumn.ColumnName = "MODALIDADE";
            mDataTable.Columns.Add(mDataColumn);

            mDataColumn = new DataColumn();
            mDataColumn.DataType = Type.GetType("System.Int32");
            mDataColumn.ColumnName = "QTD_OBJ_16";
            mDataTable.Columns.Add(mDataColumn);

            mDataColumn = new DataColumn();
            mDataColumn.DataType = Type.GetType("System.Int32");
            mDataColumn.ColumnName = "QTD_OBJ_17";
            mDataTable.Columns.Add(mDataColumn);

            return mDataTable;
        }


        private void incluirNoDataTable(string modalidade, Int32 qtd_obj16, Int32 qtd_obj_17, DataTable mTable)
        {
            DataRow linha;
            linha = mTable.NewRow();
            //gera o número GUID
            linha["Codigo"] = Guid.NewGuid().ToString();
            linha["MODALIDADE"] = modalidade;
            linha["QTD_OBJ_16"] = qtd_obj16;
            linha["QTD_OBJ_17"] = qtd_obj_17;
            mTable.Rows.Add(linha);
        }





No momento de fazer a inserção me gera o erro: (Referência de objeto não definida para uma instância de um objeto)

            incluirNoDataTable("TOTAL GERAL DIA : ", 
                                Int32.Parse(footer.Cells[16].Text),
                                Int32.Parse(footer.Cells[17].Text), 
                                (DataTable)Session["mDatatable"]);
            GridResumoTotal.DataSource = ((DataTable)Session["myDatatable"]).DefaultView;
            GridResumoTotal.DataBind();






Itamar Souza

Itamar Souza

Responder

Posts

27/02/2014

Murilo Teixeira

Esse erro pode ser motivado por duas coisas:

(DataTable)Session["mDatatable"] está nulo

Ou

footer.Cells[16] é nulo e não consegue pegar o atributo Text
footer.Cells[17] é nulo e não consegue pegar o atributo Text

Acho que se você debuggar a aplicação consegue descobrir qual está vindo nulo.
Responder

28/02/2014

Itamar Souza

Mais uma vez agradeço, achei o problema, no momento de inseri os dados eu estava passando o ((DataTable)Session["myDatatable"]).DefaultView que é diferente do que tinha sido criado. O correto seria mDatatable
Agradeço
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar