none
Erro RRS feed

  • Pergunta

  • Olá estou tendo esse erro quando faço um 

                finally
                {
                    if (AcessoBanco.mConn.State == ConnectionState.Open)
                    {
                        AcessoBanco.mConn.Close();
                    }
                }

    Porem ele da esse erro não sei oque fazer, alguém pode me ajudar?

    System.NullReferenceException: 'Referência de objeto não definida para uma instância de um objeto.'

    domingo, 14 de julho de 2019 22:40

Respostas

Todas as Respostas

  • provavelmente o objeto mConn não foi iniciado.

    poste o método completo aqui.


    Natan

    segunda-feira, 15 de julho de 2019 01:21
  • Essa é a classe q esta : 

        class AcessoBanco
        {
            public static MySqlConnection mConn;
            public static MySqlConnection CarregaMYSQL()
            {
                string CaminhoIni = AppDomain.CurrentDomain.BaseDirectory.ToString() + "\\Config.ini";
                INIFile inif = new INIFile(CaminhoIni);
                mConn = new MySqlConnection("server=" + (inif.Read("BancoDados", "Endereco")) + ";" + "database=Programa" + ";" + "uid=" + (inif.Read("BancoDados", "Usuario")) + ";" + "password=root");
                mConn.Open();
                return mConn;
            }
        }

    Aqui onde da erro :

            public void CriaTabelaEmpresa()
            {
                try
                {
                    if (AcessoBanco.mConn.State == ConnectionState.Closed)
                    {
                        AcessoBanco.mConn.Open();
                        MySqlCommand CMD = AcessoBanco.mConn.CreateCommand();
                        CMD.CommandType = CommandType.Text;
                        CMD.CommandText = ("CREATE TABLE IF NOT EXISTS empresa (CodEmp int(3) NOT NULL AUTO_INCREMENT," +
                                             "FilialEmp int(3) NOT NULL," +
                                             "RazaoSocialEmp varchar(60) NOT NULL, " +
                                             "NomeFantasiaEmp varchar(60) NOT NULL, CNPJEmp varchar(18) NOT NULL, " +
                                             "InscricaoEstadualEmp varchar(25) DEFAULT NULL, " +
                                             "RegimeTributarioEmp enum('Simples Nacional','Lucro Presumido','Lucro Real') DEFAULT NULL, " +
                                             "EnderecoEmp varchar(60) DEFAULT NULL, " +
                                             "ComplementoEmp varchar(60) DEFAULT NULL, " +
                                             "BairroEmp varchar(60) DEFAULT NULL, " +
                                             "CepEmp varchar(10) DEFAULT NULL," +
                                             "NumeroEmp int (11) DEFAULT NULL," +
                                             "CodIBGEEmp int (11) DEFAULT NULL, " +
                                             "UFEmp varchar(15) DEFAULT NULL, " +
                                             "TelefoneFixoEmp varchar(13) DEFAULT NULL, " +
                                             "CelularEmp varchar(13) DEFAULT NULL, " +
                                             "NomeContador varchar(60) DEFAULT NULL, " +
                                             "CPFContador varchar(14) DEFAULT NULL," +
                                             "CRCContador varchar(15) DEFAULT NULL, " +
                                             "CNPJContador varchar(18) DEFAULT NULL," +
                                             "EnderecoCotador varchar(60) DEFAULT NULL," +
                                             "CodIBGEContador int (11) DEFAULT NULL," +
                                             "UFContador varchar(15) DEFAULT NULL, " +
                                             "EmailContador varchar(60) DEFAULT NULL," +
                                             "SerieNFCe int (11) DEFAULT NULL," +
                                             "SequenciaNFCe varchar(9) DEFAULT NULL," +
                                             "SerieNFE int (11) DEFAULT NULL," +
                                             "SequenciaNFe varchar(9) DEFAULT NULL," +
                                             "SerieCertificadoDigital varchar(60) DEFAULT NULL, PRIMARY KEY(CodEmp)) ENGINE=InnoDB AUTO_INCREMENT = 3 DEFAULT CHARSET = utf8;");
                        CMD.ExecuteNonQuery();
                    }
                }
                catch (Exception ex)
                {
                    MessageBox.Show("Não possível criar tabela Empresa !" + ex);
                    {
                        return;
                    }
                }
                finally
                {
                    if (AcessoBanco.mConn.State == ConnectionState.Open)
                    {
                        AcessoBanco.mConn.Close();
                    }
                }
            }

    Ja da erro no primeiro IF (  if (AcessoBanco.mConn.State == ConnectionState.Closed) ).

    segunda-feira, 15 de julho de 2019 23:23
  • Tente assim:

     if (AcessoBanco.mConn.State == System.Data.ConnectionState.Open)


    Natan

    terça-feira, 16 de julho de 2019 10:48
  • Com essa sugestão deu mesmo erro ;(
    quarta-feira, 17 de julho de 2019 00:31
  • Está faltando o construtor da classe, inclua isso:

            static AcessoBanco()
            {
                mConn = CarregaMYSQL();
            }


    Natan

    quarta-feira, 17 de julho de 2019 11:30
  • Nao deu certo pois essa variavel mConn esta na classe AcessoBanco ai tentei assim q tambem nao deu

            public static MySqlConnection mConn;

            static AcessoBanco()
            {
                AcessoBanco.mConn = AcessoBanco.CarregaMYSQL();
            }

    Ai diz 

    O método deve ter um tipo de retorno "Programa"
    quarta-feira, 17 de julho de 2019 23:03
  • o construtor deve estar dentro da classe AcessoBanco.

    Natan

    • Marcado como Resposta Cristiano Rogoy quinta-feira, 18 de julho de 2019 22:58
    quarta-feira, 17 de julho de 2019 23:12