Duvida POO

15/03/2010

0

  To com uma duvida no meu projeto aqui, que é o seguinte;

Eu estou desenvolvendo um projeto em camadas e o problema é que eu preciso preencher uma Gridview com 2 campos de tabelas diferentes do bd, em primeiro momento eu criei um método que passava de parâmetro o Gridview, só que na hora de dar o dataBind() é gerado uma exceção dizendo que o Objeto precisa ser instanciado.

alguma sugestão do que pode ser feito?
Pedro Maitan

Pedro Maitan

Responder

Posts

15/03/2010

Devmedia Cursos

Como está seu código?
Responder

16/03/2010

Pedro Maitan

  public void geraBalancete(DateTime dtInicial, DateTime dtFinal, GridView gv)
        {           
            _conn = ConexaoBanco.GetConn();
            MySqlDataReader dr;
           
            _conn.abreConexao();           

            _conn.comandoSql("ComandoSql");
            _conn.sqlCommand.CommandType = CommandType.StoredProcedure;
            _conn.sqlCommand.Parameters.AddWithValue("?dtInicial", dtInicial);
            _conn.sqlCommand.Parameters.AddWithValue("?dtFinal", dtFinal);

            try
            {
                using (dr = _conn.sqlCommand.ExecuteReader(CommandBehavior.CloseConnection))
                    if (dr.Read())
                    {
                        gv.DataSource = dr;
                        gv.DataBind();
                    }
            }
            catch (MySqlException er)
            {
                throw new Exception(er.Message);
            }
            catch (Exception er)
            {
                throw new Exception(er.Message);
            }
            finally
            {
                _conn.fechaConexao();
            }           
        }
Responder

16/03/2010

Devmedia Cursos

Certo.
Qual erro original que ele retorna?
Responder

16/03/2010

Pedro Maitan

  Message = "Object reference not set to an instance of an object."

O Erro acontece no DataBind()
Responder

16/03/2010

Netasper

Não rola de passar o dataGrid por parametro. Faça um metodo que retorna a coleção que vc precisa, e na pagina aspx, receba elelno datasource e assim dê o Bind no dataGrid, blz?   []s
Responder

16/03/2010

Pedro Maitan

  Coleção de que tipo seria?... Do tipo List neste caso eu não consigo retorna.

Esse que ta sendo o problema
Responder

16/03/2010

Devmedia Cursos

Você possui métodos de outras classes, poste ele também.
E qual linha acusa o erro?
Responder

16/03/2010

Pedro Maitan

  O Método é só esse mesmo, o erro esta acusando no DataBind();

O problema de usar uma coleção de objetos pro exemplo:

Classe Funcionario contendo um campo nome
Classe Pedido um campo Data.

Como que eu retornaria uma coleção de objetos nesse caso

"Select pedido.Data, funcionario.nome from pedido inner join funcionario on codigof = codigop";

Minha Classe só tem o campo Nome, por exemplo
Responder

16/03/2010

Devmedia Cursos

Bom, você possui essas duas classes?
se sim, é so no seu select usar inner join, e retornar os valores...
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