Como criar uma classe com todos os comandos MySql

20/09/2013

0

Olá Pessoal, vira e mexe eu posto quase que a mesma coisa aqui (rsrsrs), mas vamos lá a minha dúvida sem muitas delongas, bom, eu quero criar uma classe de banco de dados com o MySql, e estou apanhando para fazer esta classe, alguém poderia me dar alguma dica, quero fazer ela completa....
Vinicius Biá

Vinicius Biá

Responder

Posts

20/09/2013

Vinicius Biá

Olá Pessoal, vira e mexe eu posto quase que a mesma coisa aqui (rsrsrs), mas vamos lá a minha dúvida sem muitas delongas, bom, eu quero criar uma classe de banco de dados com o MySql, e estou apanhando para fazer esta classe, alguém poderia me dar alguma dica, quero fazer ela completa....


essa Conexão eu quero fazer com o C#
Responder

20/09/2013

Joel Rodrigues

Creio que tenha outro post sobre o mesmo tema, não?
Responder

20/09/2013

Joel Rodrigues

Mas de toda forma, qual é exatamente sua dificuldade?
Responder

20/09/2013

Deivison Melo

Acho que ficaria mais fácil utilizar o Entity Framework para desenvolver o que está desejando!
Responder

21/09/2013

Thiago Jesus

Olá Pessoal, vira e mexe eu posto quase que a mesma coisa aqui (rsrsrs), mas vamos lá a minha dúvida sem muitas delongas, bom, eu quero criar uma classe de banco de dados com o MySql, e estou apanhando para fazer esta classe, alguém poderia me dar alguma dica, quero fazer ela completa....


Não sei se entendi direito, mas vou tentar.

Para trabalhar com banco de dados você pode utilizar o padrão DAO, isto é, pode criar uma classe que irá conter todo o seu código SQL.
Segue um exemplo:

Classe Model
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

namespace Contatos
{
    class ContatosMODEL
    {
        public int codigo { get; set; }
        public string nome { get; set; }
        public string email { get; set; }
        public string telefone { get; set; }
    }
}



Classe DAO
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
using System.Windows.Forms;
using System.Data;

namespace Contatos
{
    class ContatosDAO
    {
       // conexao com o banco de dados
      SqlConnection conn = new SqlConnection(@"Server =(LocalDB)\v11.0;Database = banco; Integrated Security = SSPI;");
      private SqlTransaction transacao;

public void Gravar(ContatosMODEL contato)
       {
           // abre a conexão;
           conn.Open();
          
           // inicia a transação
           transacao = conn.BeginTransaction(IsolationLevel.ReadCommitted);
           try
           {
               // instrução sql
               SqlCommand sql = new SqlCommand("Insert Into contatos (codigo, nome, " + 
                                               "email, telefone) Values (@codigo, " +
                                               "@nome, @email, @telefone)", conn, transacao);
               
               // parametros da instrução sql
               sql.Parameters.AddWithValue("@codigo", contato.codigo);
               sql.Parameters.AddWithValue("@nome", contato.nome);
               sql.Parameters.AddWithValue("@email", contato.email);
               sql.Parameters.AddWithValue("@telefone", contato.telefone);
               sql.ExecuteNonQuery(); // executa a instrução no banco
               transacao.Commit(); // commita a transação
               conn.Close();  // fecha a conexao
           }
           catch (SqlException ex)
           {
               // Rollback na transação
               transacao.Rollback();
               MessageBox.Show(ex.Message);
           }
       } 



Lembrando que este é apenas um exemplo.
Observe que eu instanciei um objeto do tipo SqlConnection na própria classe DAO apenas para te mostrar um exemplo. O ideal é você criar uma classe com métodos que retornam uma conexão, encerram a conexão, etc. Este tipo de classe é fácilmente encontrada na internet.

Espero ter ajudado.
Responder

21/09/2013

Vinicius Biá

Então Thiago eu criei uma classe cliente e fiz como você referenciou no seu comentário, o problema é a tal classe com o banco MySql, fiz tudo direitinho, baixei o conector fiz sua referência, mas minha classe não funciona, olha ai :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;
using System.Data;
using System.Data.OleDb;

namespace Projeto.BD
{
class ConexaoMySql
{
private string Banco_Dados;
private string Servidor;
private string Usuario;
private string Senha;
private string Conexao;
private string MySql;

private MySqlConnection AbrirBanco()
{
Conexao = "DataSource=" + Servidor + ";Initial Catalog=" + Banco_Dados + ";Persist Security Info=True;User ID=" + Usuario + ";Password=" + Senha;
MySqlConnection con = new MySqlConnection(Conexao);
con.Open();

return con;

}

public void Executar()
{
MySqlConnection con = AbrirBanco();
MySqlCommand cmd = new MySqlCommand(MySql,con);
cmd.ExecuteScalar();
}

public MySqlDataReader RetornaDataReader()
{
MySqlConnection cmd = new MySqlConnection();
cmd = AbrirBanco();
MySqlCommand Comando = new MySqlCommand();
Comando.CommandText = MySql.ToString();
Comando.Connection = cmd;
MySqlDataReader MySqlReader = Comando.ExecuteReader();
return MySqlReader;
}

public DataSet RetornaDataSete()
{
MySqlConnection cmd = new MySqlConnection();
cmd = AbrirBanco();
MySqlCommand Comando = new MySqlCommand();
Comando.CommandText = MySql.ToString();
Comando.Connection = cmd;
MySqlDataReader MySqlReader = Comando.ExecuteReader();
MySqlDataAdapter dtAdapter = new MySqlDataAdapter();
DataSet dsDataSet = new DataSet();
dtAdapter.SelectCommand = Comando;
dtAdapter.Fill(dsDataSet);
return dsDataSet;



}
public DataTable RetornaDataTable()
{
MySqlConnection cmd = new MySqlConnection();
cmd = AbrirBanco();
MySqlCommand Comando = new MySqlCommand();
Comando.CommandText = MySql.ToString();
Comando.Connection = cmd;
MySqlDataReader MySqlReader = Comando.ExecuteReader();
MySqlDataAdapter dtAdapter = new MySqlDataAdapter();
DataSet dsDataSet = new DataSet();
dtAdapter.SelectCommand = Comando;
dtAdapter.Fill(dsDataSet);
return dsDataSet.Tables[0];

}
}
}

Gostei da ideia de usar o Entity Framework que o Deivison passou......

mas segue ai minha classe criada com o MySql, lembrando que me basei no Sql Server, só se for isso....rsrsrs
Responder

22/09/2013

Thiago Jesus

Então Thiago eu criei uma classe cliente e fiz como você referenciou no seu comentário, o problema é a tal classe com o banco MySql, fiz tudo direitinho, baixei o conector fiz sua referência, mas minha classe não funciona, olha ai :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;
using System.Data;
using System.Data.OleDb;

namespace Projeto.BD
{
class ConexaoMySql
{
private string Banco_Dados;
private string Servidor;
private string Usuario;
private string Senha;
private string Conexao;
private string MySql;

private MySqlConnection AbrirBanco()
{
Conexao = "DataSource=" + Servidor + ";Initial Catalog=" + Banco_Dados + ";Persist Security Info=True;User ID=" + Usuario + ";Password=" + Senha;
MySqlConnection con = new MySqlConnection(Conexao);
con.Open();

return con;

}

public void Executar()
{
MySqlConnection con = AbrirBanco();
MySqlCommand cmd = new MySqlCommand(MySql,con);
cmd.ExecuteScalar();
}

public MySqlDataReader RetornaDataReader()
{
MySqlConnection cmd = new MySqlConnection();
cmd = AbrirBanco();
MySqlCommand Comando = new MySqlCommand();
Comando.CommandText = MySql.ToString();
Comando.Connection = cmd;
MySqlDataReader MySqlReader = Comando.ExecuteReader();
return MySqlReader;
}

public DataSet RetornaDataSete()
{
MySqlConnection cmd = new MySqlConnection();
cmd = AbrirBanco();
MySqlCommand Comando = new MySqlCommand();
Comando.CommandText = MySql.ToString();
Comando.Connection = cmd;
MySqlDataReader MySqlReader = Comando.ExecuteReader();
MySqlDataAdapter dtAdapter = new MySqlDataAdapter();
DataSet dsDataSet = new DataSet();
dtAdapter.SelectCommand = Comando;
dtAdapter.Fill(dsDataSet);
return dsDataSet;



}
public DataTable RetornaDataTable()
{
MySqlConnection cmd = new MySqlConnection();
cmd = AbrirBanco();
MySqlCommand Comando = new MySqlCommand();
Comando.CommandText = MySql.ToString();
Comando.Connection = cmd;
MySqlDataReader MySqlReader = Comando.ExecuteReader();
MySqlDataAdapter dtAdapter = new MySqlDataAdapter();
DataSet dsDataSet = new DataSet();
dtAdapter.SelectCommand = Comando;
dtAdapter.Fill(dsDataSet);
return dsDataSet.Tables[0];

}
}
}

Gostei da ideia de usar o Entity Framework que o Deivison passou......

mas segue ai minha classe criada com o MySql, lembrando que me basei no Sql Server, só se for isso....rsrsrs


Vínicius no meu Github tem um exemplo completo de CRUD utilizando C# e ADO.NET que pode te ajudar.

Link: https://github.com/thiagoaugusto/Contatos
Responder

22/09/2013

Thiago Jesus

Dê uma estudada no código e qualquer dúvida eu estou disponível no email: thiago.android88@gmail.com
Responder

22/09/2013

Vinicius Biá

Então Thiago eu criei uma classe cliente e fiz como você referenciou no seu comentário, o problema é a tal classe com o banco MySql, fiz tudo direitinho, baixei o conector fiz sua referência, mas minha classe não funciona, olha ai :

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using MySql.Data.MySqlClient;
using System.Data;
using System.Data.OleDb;

namespace Projeto.BD
{
class ConexaoMySql
{
private string Banco_Dados;
private string Servidor;
private string Usuario;
private string Senha;
private string Conexao;
private string MySql;

private MySqlConnection AbrirBanco()
{
Conexao = "DataSource=" + Servidor + ";Initial Catalog=" + Banco_Dados + ";Persist Security Info=True;User ID=" + Usuario + ";Password=" + Senha;
MySqlConnection con = new MySqlConnection(Conexao);
con.Open();

return con;

}

public void Executar()
{
MySqlConnection con = AbrirBanco();
MySqlCommand cmd = new MySqlCommand(MySql,con);
cmd.ExecuteScalar();
}

public MySqlDataReader RetornaDataReader()
{
MySqlConnection cmd = new MySqlConnection();
cmd = AbrirBanco();
MySqlCommand Comando = new MySqlCommand();
Comando.CommandText = MySql.ToString();
Comando.Connection = cmd;
MySqlDataReader MySqlReader = Comando.ExecuteReader();
return MySqlReader;
}

public DataSet RetornaDataSete()
{
MySqlConnection cmd = new MySqlConnection();
cmd = AbrirBanco();
MySqlCommand Comando = new MySqlCommand();
Comando.CommandText = MySql.ToString();
Comando.Connection = cmd;
MySqlDataReader MySqlReader = Comando.ExecuteReader();
MySqlDataAdapter dtAdapter = new MySqlDataAdapter();
DataSet dsDataSet = new DataSet();
dtAdapter.SelectCommand = Comando;
dtAdapter.Fill(dsDataSet);
return dsDataSet;



}
public DataTable RetornaDataTable()
{
MySqlConnection cmd = new MySqlConnection();
cmd = AbrirBanco();
MySqlCommand Comando = new MySqlCommand();
Comando.CommandText = MySql.ToString();
Comando.Connection = cmd;
MySqlDataReader MySqlReader = Comando.ExecuteReader();
MySqlDataAdapter dtAdapter = new MySqlDataAdapter();
DataSet dsDataSet = new DataSet();
dtAdapter.SelectCommand = Comando;
dtAdapter.Fill(dsDataSet);
return dsDataSet.Tables[0];

}
}
}

Gostei da ideia de usar o Entity Framework que o Deivison passou......

mas segue ai minha classe criada com o MySql, lembrando que me basei no Sql Server, só se for isso....rsrsrs


Vínicius no meu Github tem um exemplo completo de CRUD utilizando C# e ADO.NET que pode te ajudar.

Link: https://github.com/thiagoaugusto/Contatos


Olá Thiago, muito bom o link que me enviou....só gostaria de tirar algumas dúvidas..
1° Os Exemplos sitados são com SQL Server, no caso eu posso adapta-lo e colocar MySql ?
2° Para cada classe que eu tenho tipo, cliente, fornecedores, funcionários etc, eu tenho que criar uma classe de conexão ?

Desculpem a falta de conhecimento, é que sou novato rsrsrs
Responder

22/09/2013

Thiago Jesus

Você pode adaptar o exemplo de SQL Server para MySQL sem problemas, é só importar o driver do MySQL para o seu projeto e alterar os nomes.
Por exemplo:
SqlConnection - MysqlConnection
SqlCommand - MysqlCommand

E assim por diante.

Você não precisa criar uma classe de conexão para cada tela. Você pode criar uma única classe e instanciá-la quando precisar.

Você possui Skype? Se sim me passe a sua conta que nós conversamos por ele.

Não se preocupe em perguntar. Eu mesmo quando comecei a programar pude contar com a ajuda de alguns amigos.
Aqui mesmo na DevMedia tem muitas pessoas com muito mais conhecimento que eu, que na medida do possível irão te ajudar em todas as suas dúvidas.
Responder

22/09/2013

Vinicius Biá

Olá Thiago, fico feliz em poder contar com você assim como os demais amigos deste fórum, meu Skype é Vinicius Biá, viniciusbia@hotmail.com
fico grato pela ajuda, pessoas como você fazem a diferença...abraços.... e aguardo contato rsrs
Responder

Assista grátis a nossa aula inaugural

Assitir aula

Saiba por que programar é uma questão de
sobrevivência e como aprender sem riscos

Assistir agora

Utilizamos cookies para fornecer uma melhor experiência para nossos usuários, consulte nossa política de privacidade.

Aceitar