Como criar uma classe com todos os comandos MySql
20/09/2013
0
Vinicius Biá
Posts
20/09/2013
Vinicius Biá
essa Conexão eu quero fazer com o C#
20/09/2013
Joel Rodrigues
20/09/2013
Deivison Melo
21/09/2013
Thiago Jesus
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.
21/09/2013
Vinicius Biá
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
22/09/2013
Thiago Jesus
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
22/09/2013
Thiago Jesus
22/09/2013
Vinicius Biá
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
22/09/2013
Thiago Jesus
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.
22/09/2013
Vinicius Biá
fico grato pela ajuda, pessoas como você fazem a diferença...abraços.... e aguardo contato rsrs
Clique aqui para fazer login e interagir na Comunidade :)