Erro System.InvalidOperationException: 'Connection must be valid and open.' Não estou conseguindo conectar ao banco MySql no visual studio 2017 (c#) via servidor externo

0 respostas
bancodesenvolvimentomysqlcsharp
T

Ao tentar conectar no banco de dados externo, aparece a mensagem System.InvalidOperationException: 'Connection must be valid and open. A situação é que quando criei o software em casa, utilizei o wampserver/localhost e funcionava corretamente, porém, ao tentar conectar no trabalho, utilizando as configurações do servidor, da o erro mencionado acima. Tentei utilizar o server com o IP e também com o localhost.

/////////////////SEGUE ABAIXO AS LINHAS DE CÓDIGOS\\\\\\\\\\\\\\\\

//////////////////CLASSE CONNECTION\\\\\\\\\\\\\\\

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using System.ComponentModel;

using System.Data;

using System.Drawing;

using System.Windows.Forms;

using MySql.Data.MySqlClient;

using System.Data.SqlClient;
namespace Livro_de_Partes

{

class Connection

{

public static MySqlConnection conexao = null;

private String stringconnection = server=10.12.240.45;User Id = root; password=************;database=db_livrodepartes;
public void tentarAbrirConexaoLocal()
    {
        conexao = new MySqlConnection();
        conexao.ConnectionString = stringconnection;
        conexao.Open();
    }

    public Connection()
    {
        try
        {
            tentarAbrirConexaoLocal();
        }
        catch
        {
            Console.WriteLine("Não foi possível validar seu acesso.Tente novamente.");
        }
     }
    public static MySqlConnection getConexao()
    {
        new Connection();
        return conexao;
    }
    public static void fecharConexao()
    {
        conexao.Close();
    }
}

}

////////////////////////CLASSE OPERACAOBANCO\\\\\\\\\\\\\\

using System;

using System.Collections.Generic;

using System.Linq;

using System.Text;

using System.Threading.Tasks;

using MySql.Data.MySqlClient;
namespace Livro_de_Partes

{

class OperacaoBanco

{

private MySqlCommand TemplateMethod(String query)

{

MySqlConnection Conexao = Connection.getConexao();

MySqlCommand Comando = new MySqlCommand(query, Conexao);
try
        {
            Comando.ExecuteNonQuery();
            return Comando;
        }
        catch
        {
            return Comando;
        }
    }

    public MySqlDataReader Select(String query)
    {
        MySqlDataReader dadosObtidos = TemplateMethod(query).ExecuteReader();
        return dadosObtidos;
    }

    public Boolean Insert(String query)
    {
        MySqlConnection Conexao = Connection.getConexao();
        MySqlCommand Comando = new MySqlCommand(query, Conexao);

        try
        {
            Comando.ExecuteNonQuery();
            return true;
        }
        catch
        {
            return false;
        }
    }

    public Boolean Update(String query)
    {
        MySqlConnection Conexao = Connection.getConexao();
        MySqlCommand Comando = new MySqlCommand(query, Conexao);

        try
        {
            Comando.ExecuteNonQuery();
            return true;
        }
        catch
        {
            return false;
        }
    }
    public Boolean Delete(String query)
    {
        MySqlConnection Conexao = Connection.getConexao();
        MySqlCommand Comando = new MySqlCommand(query, Conexao);

        try
        {
            Comando.ExecuteNonQuery();
            return true;
        }
        catch
        {
            return false;
        }
    }
}

}

Criado 23 de fevereiro de 2018
Respostas 0
Participantes 1