none
No overload for method 'ValidarConexao' takes 2 arguments RRS feed

  • Pergunta

  • Pessoal, muito bom dia, boa noite ou até mesmo uma boa madrugada para os velhos garfanhotos!

     estou com um problema no meu projeto em camadas. eu tenho um método do botão btn_entrar para logar no meu sistema

    através do controle de acesso. nesse meu trecho de código, o erro apresentado está nos parametros que estou passando, mais o VS me diz que existe um overload "takes 2 arguments"  meu trecho com erro é esse abaixo

    ==>>  trecho do erro  ==>  if (Controladora.ValidarConexao(registroInterno.ConnectionString, ref resultado))

    ============== codigo na integra===============================

    private void btn_entrar_Click(object sender, EventArgs e)
                {
                if (this.ValidarDadosConexao())
                    {
                    //registroInterno.Server = this.txtServidor.Text.Trim();
                    //registroInterno.Port = this.txtPorta.Text.Trim();
                    //registroInterno.Database = this.txtBanco.Text.Trim();
                    registroInterno.UserId = this.txt_login.Text.Trim();
                    registroInterno.Password = this.txt_senha.Text.Trim();

                    string resultado = string.Empty;
                    if (Controladora.ValidarConexao(registroInterno.ConnectionString, ref resultado))
                        {
                        registroInterno.ConexaoEstabelecida = true;
                        RegistryKey registryKey = Registry.LocalMachine.OpenSubKey(@"SOFTWARE");
                        try
                            {
                            registryKey = Registry.LocalMachine.CreateSubKey(@"SOFTWARE\CSA_SISTEMAS");

                            //registryKey.SetValue("Server", registroInterno.Server);
                            //registryKey.SetValue("Port", registroInterno.Port);
                            //registryKey.SetValue("Database", registroInterno.Database);
                            registryKey.SetValue("UserId", registroInterno.UserId);
                            registryKey.SetValue("Password", registroInterno.Password);
                            registryKey.Close();

                            Util.Informar("Conexão válida!");
                            this.Close();

    quinta-feira, 8 de junho de 2017 03:30

Respostas

  • Seu método ValidarConexao só espera 1 (um) parâmetro, a string mensagem. Na sua chamada (código abaixo) você envia dois parâmetros.

     if (Controladora.ValidarConexao(registroInterno.ConnectionString, ref resultado)) 


    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.

    quinta-feira, 8 de junho de 2017 11:52
  • Se você precisa passar um valor adicional como parâmetro para seu método/função, você precisa acrescentar este parâmetro na assinatura do método.

    int Soma(int parametro1, int parametro2) //assinatura da função
    {
        return parametro1 + parametro2;
    }
    
    // Chamada de chamada
    Soma(2, 2);

    Este exemplo não é em cima do seu código, mas apenas para lhe explicar como funciona a passagem de parâmetros para funções.


    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.

    quinta-feira, 8 de junho de 2017 13:46

Todas as Respostas

  • E qual o código do método ValidarConexao?

    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.

    quinta-feira, 8 de junho de 2017 10:50
  • bom dia Juliano Nunes. segue o código do meu método ValidarConexao. esse meu método está na minha camada de controles.

    ======================= Camada de controles =============================

    public class Controladora
            {
          
            private static NpgsqlConnection conexao = null;

            public static bool ValidarConexao(ref string mensagem)
                {
                bool resultado = false;
                if (conexao == null)
                    {
                    conexao = ConnectionPostgre.ConectarBDPostgre();
                    }
                try
                    {
                    conexao.Open();
                    resultado = true;
                    conexao.Close();
                    }
                catch (Exception ex)
                    {
                    mensagem = ex.Message + "\n" + ex.InnerException;
                    resultado = false;
                    }
                return resultado;
                }

    =================== fim validarconexão ============================

    quinta-feira, 8 de junho de 2017 11:43
  • Seu método ValidarConexao só espera 1 (um) parâmetro, a string mensagem. Na sua chamada (código abaixo) você envia dois parâmetros.

     if (Controladora.ValidarConexao(registroInterno.ConnectionString, ref resultado)) 


    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.

    quinta-feira, 8 de junho de 2017 11:52
  • sim. nesse caso, eu consegui resolver parte do proposto. colequei o codigo desse jeito

    passei para o primeiro If a chamada do meu metodo, passando como parâmetro o (ref resultado)

    string resultado = string.Empty;
                      if (Controladora.ValidarConexao(ref resultado))
                         

    agora eu preciso também passar o (registrointerno.ConnectionString)

    nesse caso eu teria que criar outro "If" ?

    segue também na íntegra minha outra camada de controle, nesse caso  o RegistrarConexao.

    {
        public class RegistrarConexao
            {
            public RegistrarConexao() { }

            //public string Server { get; set; }
            //public string Port { get; set; }
            //public string Database { get; set; }
            public string UserId { get; set; }
            public string Password { get; set; }
            public bool ConexaoEstabelecida { get; set; }
            public string ConnectionString
                {
                get
                    {
                    return string.Format("Server={0};Port={1};Database={2};User Id={3};Password={4};", this.UserId, this.Password);
                    }
                }

            }
        }

    quinta-feira, 8 de junho de 2017 12:21
  • Se você precisa passar um valor adicional como parâmetro para seu método/função, você precisa acrescentar este parâmetro na assinatura do método.

    int Soma(int parametro1, int parametro2) //assinatura da função
    {
        return parametro1 + parametro2;
    }
    
    // Chamada de chamada
    Soma(2, 2);

    Este exemplo não é em cima do seu código, mas apenas para lhe explicar como funciona a passagem de parâmetros para funções.


    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.

    quinta-feira, 8 de junho de 2017 13:46
  • Obrigado Juliano, vou dar sequência no projeto.
    quinta-feira, 8 de junho de 2017 13:54