DevMedia - asp.net, Java, Delphi, SQL e web Design, tudo em um só lugar!
Bem vindo a DevMedia!
LOGIN:     SENHA:
 
 

Fórum DevMedia


Autor
Mensagem
Pedro Otávio
 

País: Brasil
Estado: SP
Cidade: Guaiçara
Mensagens: 62
 Postado em: 15/3/2010 10:42:13 AM

  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?
Rafael Silva
 

País: Brasil
Estado: RS
Cidade: Guaíba
Mensagens: 28
 Postado em: 15/3/2010 11:45:56 PM
Como está seu código?

 
Pedro Otávio
 
 


País: Brasil
Estado: SP
Cidade: Guaiçara
Mensagens: 62
 Postado em: 16/3/2010 8:43:17 AM
  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();
            }           
        }

 
Rafael Silva
 

País: Brasil
Estado: RS
Cidade: Guaíba
Mensagens: 28
 Postado em: 16/3/2010 12:10:07 PM
Certo.
Qual erro original que ele retorna?

 
Pedro Otávio
 
 


País: Brasil
Estado: SP
Cidade: Guaiçara
Mensagens: 62
 Postado em: 16/3/2010 1:30:49 PM
  Message = "Object reference not set to an instance of an object."

O Erro acontece no DataBind()

 
NetAsper
 

País: Brasil
Estado: MG
Cidade: BH
Mensagens: 256
 Postado em: 16/3/2010 7:41:17 PM
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

 
Pedro Otávio
 
 


País: Brasil
Estado: SP
Cidade: Guaiçara
Mensagens: 62
 Postado em: 16/3/2010 8:31:37 PM
  Coleção de que tipo seria?... Do tipo List neste caso eu não consigo retorna.

Esse que ta sendo o problema

 
Rafael Silva
 

País: Brasil
Estado: RS
Cidade: Guaíba
Mensagens: 28
 Postado em: 16/3/2010 9:25:59 PM
Você possui métodos de outras classes, poste ele também.
E qual linha acusa o erro?

 
Pedro Otávio
 
 


País: Brasil
Estado: SP
Cidade: Guaiçara
Mensagens: 62
 Postado em: 16/3/2010 9:42:41 PM
  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

 
Rafael Silva
 

País: Brasil
Estado: RS
Cidade: Guaíba
Mensagens: 28
 Postado em: 16/3/2010 10:24:36 PM
Bom, você possui essas duas classes?
se sim, é so no seu select usar inner join, e retornar os valores...

 
web-03
DevMedia  |  Anuncie  |  Fale conosco
Hospedagem web por Porta 80 Web Hosting
2013 - Todos os Direitos Reservados a web-03