domingo, 26 de setembro de 2010

Classe C#.net para conexão MySql

9/26/2010 11:37:00 AM
Após criar a Classe VB.net para conexão com Banco de Dados MySql resolvi criar então uma classe em C#.

O código:


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using MySql.Data.MySqlClient;
using System.Data;

namespace Conexao_mysql
{
    class ConexaoMySql
    {
        private string _servidorEndereco, _servidorUsuario, _servidorSenha, _servidorBD;
        private MySqlConnection con = new MySqlConnection();
        private MySqlDataAdapter dap = new MySqlDataAdapter();
        private MySqlDataReader dataReaderMy;
        private MySqlCommand com;
        private DataTable dat = new DataTable();

        public string servidorEndereco
        {
            get { return _servidorEndereco; }
            set { _servidorEndereco = value; }
        }
        public string servidorUsuario
        {
            get { return _servidorUsuario; }
            set { _servidorUsuario = value; }
        }
        public string servidorSenha
        {
            get { return _servidorSenha; }
            set { _servidorSenha = value; }
        }
        public string servidorBD
        {
            get { return _servidorBD; }
            set { _servidorBD = value; }
        }

        public ConexaoMySql(string servEndereco, string servUsuario, string servSenha, string servBD)
        {
            this.servidorEndereco = servEndereco;
            this.servidorUsuario = servUsuario;
            this.servidorSenha = servSenha;
            this.servidorBD = servBD;
        }

        public bool conectar()
        {
            if ((con.State == ConnectionState.Broken) || (con.State == ConnectionState.Closed))
            {
                try
                {
                    this.con.ConnectionString = "server=" + servidorEndereco + ";user id=" + servidorUsuario + ";password=" + servidorSenha + "; database=" + servidorBD;
                    this.con.Open();
                    return true;
                }
                catch
                {
                    return false;
                }
            }
            else
                return true;
        }
      
        public void fechar()
        {
            if ((con.State == ConnectionState.Open) || (con.State == ConnectionState.Executing) || (con.State == ConnectionState.Fetching))
            {
                con.Close();
                con.Dispose();
                con = null;
            }
        }

        public MySqlDataReader myDataReader(string sql)
        {
            try
            {
                this.conectar();
                this.com = new MySqlCommand(sql,con);
                this.dataReaderMy = com.ExecuteReader();
                return this.dataReaderMy;
            }
            catch
            {
                return this.dataReaderMy;
            }
        }

        public bool myComando(string sql)
        {
            try
            {
                this.conectar();
                this.com = new MySqlCommand(sql,con);
                this.com.ExecuteNonQuery();
                return true;
            }
            catch
            {
                return false;
            }

        }

        public DataTable myDataTable(string sql)
        {
            try
            {
                this.conectar();
                this.com = new MySqlCommand(sql, con);
                this.com.CommandType = CommandType.Text;
                this.com.CommandText = sql;
                dap.SelectCommand = this.com;
                dap.Fill(dat);
                dap.Dispose();
                return dat;
            }
            catch
            {
                return dat;
            }
        }
    }
}


2 comentários:

Elson disse...

opa, blz?
cara vc poderia comentar essa string de conexão?
eu vou desenvolver mu tcc em C# Express e MySQL... estou meio perdido... kkk a conexão com o SQLServer é mais simples mas a idéia é utilizar ferramentas gratuitas...
Obrigado pela atenção!

Unknown disse...

Blz Elson,

No caso da string de conexão, ela recebe os dados da conexão separados por ';' assim:
"servidor=localhost;user id=root;password=123;database=BDmu"

quando fiz essa classe tinha pouco tempo que estava estudando C#, então faltou comentar e colocar uns exemplos de como utiliza-la, no caso é simples:

' adicione os dados da conexao na instancia da classe
...new ConexaoMySql(localhost,root,123,BDmu);

depois é só chamar a função 'conectar()' para abrir a conexão...

espero ter ajudado, qualquer coisa posta ai, e assim que tiver mais tempo volto a postar uns exemplos utilizando essa classe, pois não cheguei a trabalhar com C# então como já tem muito tempo, esqueci bastante coisa...

 
Abrir Rodape