none
Erro - Non-Invocable member 'NpgsqlDataAdapter' cannot be used like a method RRS feed

  • Pergunta

  • Boa tarde pessoal

    Sou um usuário acido deste fórum, desde quando comecei a aprender a programar, agora estou me aventurando a aprender a programar em C# pelo Visual Studio 2015, estou acompanhando um curso em vídeo de como programar em camadas com C#, só que no vídeo o instrutor usa o MySQL e eu estou usando o PostgreSQL 4 2.0, na canada DAL onde fazemos a conexão com o banco de Dados esta dando um erro como este acima nos comandos onde vou grifar. Se alguém souber como resolver eu agradeço muito.

    using System;
    using System.Collections;
    using System.Collections.Generic;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Data;
    using Npgsql; //Referencia do provider de conexão do Postgresql.  
    
    
    namespace DAL
    {
        class AcessoBancoDados
    
        {
            private NpgsqlConnection conn;
            private DataTable data;
            private NpgsqlDataAdapter da;
            private NpgsqlDataReader dr;
            private NpgsqlCommandBuilder cb;
           // private NpgsqlTypes
    
            private string server = "localhost";                                              //localhost                                                 
            static string userName = "postgres";                                             //nome do administrador
            static string password = "25d04m1966a";                                          //senha do administrador
            static string databaseName = "protheus";                                         //nome do banco de dados
    
            public void Conectar()
            {
                if (conn != null)
                    conn.Close();
                string connStr = String.Format("server={0}; userName id={1}; password={2}; databaseName={3}; pooling=false", server, userName, password, databaseName);
    
                try
    
                {
                    conn = new NpgsqlConnection(connStr);
                    conn.Open();
                }
                catch (NpgsqlException ex)
                {
                    throw new Exception(ex.Message);
                }
            }
            public void ExecutarComandoSql(string ComandoSql)
            {
    
                NpgsqlCommand comando = new NpgsqlCommand(comandoSql, conn);
                comando.ExecuteNonQuery();
                conn.Close();
            }
    
            public DataTable RetDataTable(string sql)
            {
                data = new DataTable();
                da = NpgsqlDataAdapter(sql, conn);
                cb = NpgsqlCommandBuilder(da);
                da = Fill(data);
    
                return data;
            }
    
            private NpgsqlDataAdapter Fill(DataTable data)
            {
                throw new NotImplementedException();
            }
    
            public NpgsqlDataReader RetDataReader(string sql);
    
            NpgsqlCommand comando = new NpgsqlCommand(NpgsqlTypes, conn);
            NpgsqlDataReader dr = comando.ExecutaReader();
            private string comandoSql;
    
            dr.Read();
            return dr;
        }
    
    }        

    terça-feira, 10 de outubro de 2017 20:33

Respostas

  • Olá,

    Tenta mudar assim. colocando o new

    public DataTable RetDataTable(string sql)
            {
                data = new DataTable();
                da = new NpgsqlDataAdapter(sql, conn);
                cb = new NpgsqlCommandBuilder(da);
                da = Fill(data);
    
                return data;
            }

    as chaves no fim do metodo

    public NpgsqlDataReader RetDataReader(string sql)
    {
    
            NpgsqlCommand comando = new NpgsqlCommand(NpgsqlTypes, conn);
            NpgsqlDataReader dr = comando.ExecutaReader();
            private string comandoSql;
    
            dr.Read();
            return dr;
    }

    quarta-feira, 11 de outubro de 2017 11:12
    Moderador
  • A blz,

    Olha agora

    o seu paramento está errado no construtor da npgsqlcommand

    public NpgsqlDataReader RetDataReader(string sql)
    {
    
            NpgsqlCommand comando = new NpgsqlCommand(sql, conn);
            NpgsqlDataReader dr = comando.ExecutaReader();
            private string comandoSql;
    
            dr.Read();
            return dr;
    }

    quarta-feira, 11 de outubro de 2017 12:28
    Moderador

Todas as Respostas

  • Olá,

    Tenta mudar assim. colocando o new

    public DataTable RetDataTable(string sql)
            {
                data = new DataTable();
                da = new NpgsqlDataAdapter(sql, conn);
                cb = new NpgsqlCommandBuilder(da);
                da = Fill(data);
    
                return data;
            }

    as chaves no fim do metodo

    public NpgsqlDataReader RetDataReader(string sql)
    {
    
            NpgsqlCommand comando = new NpgsqlCommand(NpgsqlTypes, conn);
            NpgsqlDataReader dr = comando.ExecutaReader();
            private string comandoSql;
    
            dr.Read();
            return dr;
    }

    quarta-feira, 11 de outubro de 2017 11:12
    Moderador
  • Bom dia Welington Junior,

    Quanto ao acrescentar o comando new funcionou.

    Mas quanta às Chaves nada mudou.

    Mesmo assim muito Obrigado, vou quebrando a cabeça aqui, caso descubra mais alguma coisa agradeço muito se me passar a solução.

    Abraços

    quarta-feira, 11 de outubro de 2017 11:56
  • Samuel,

    Se o problema original da pergunta foi resolvido, marque a resposta do Welington como aceita e abra um novo tópico para o outro problema (das chaves).


    Juliano Nunes - http://linkedin.com/in/julianonunes

    Lembre-se de clicar em "Votar como útil" e "Marcar como Resposta" caso tenha respondido sua dúvida.

    Remember to "Vote as Helpful" and "Mark as Answer" if your question has been answered.

    quarta-feira, 11 de outubro de 2017 12:15
  • A blz,

    Olha agora

    o seu paramento está errado no construtor da npgsqlcommand

    public NpgsqlDataReader RetDataReader(string sql)
    {
    
            NpgsqlCommand comando = new NpgsqlCommand(sql, conn);
            NpgsqlDataReader dr = comando.ExecutaReader();
            private string comandoSql;
    
            dr.Read();
            return dr;
    }

    quarta-feira, 11 de outubro de 2017 12:28
    Moderador
  • Bom dia,

    Por falta de retorno essa thread está encerrada.

    Se necessário, favor abrir uma nova thread.

    Atenciosamente,

    Filipe B de Castro

    Esse conteúdo é fornecido sem garantias de qualquer tipo, seja expressa ou implícita

    MSDN Community Support

    Por favor, lembre-se de Marcar como Resposta as postagens que resolveram o seu problema. Essa é uma maneira comum de reconhecer aqueles que o ajudaram e fazer com que seja mais fácil para os outros visitantes encontrarem a resolução mais tarde.

    segunda-feira, 16 de outubro de 2017 13:19
    Moderador