2
I need some help. I downloaded a project in c# stock control, but the database is by Microsoft SQL Server, and would like to use Mysql for connection and data logging.
Follow example of connection files:
Archive: DAL > Datadaconexao.Cs
using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DAL
{
public class DadosDaConexao
{
public static String servidor = @"@\SQLESTOQUEBOX";
public static String banco = "estoque_box";
public static String usuario = "estoqueBox";
public static String senha = "estoqueBox";
public static String StringDeConexao
{
get
{
return @"Data Source=" + servidor + ";Initial Catalog=" + banco + ";User ID=" + usuario + ";Password=" + senha;
}
}
}
}
Archive: DAL > Dalconexao.Cs
using System;
using System.Collections.Generic;
using System.Data.SqlClient;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
namespace DAL
{
public class DALConexao
{
private String _stringConexao;
private SqlConnection _conexao;
public DALConexao(String dadosConexao)
{
this._conexao = new SqlConnection();
this.StringConexao = dadosConexao;
this._conexao.ConnectionString = dadosConexao;
}
public String StringConexao
{
get { return this._stringConexao; }
set { this._stringConexao = value; }
}
public SqlConnection ObjetoConexao
{
get { return this._conexao; }
set { this._conexao = value; }
}
public void Conectar()
{
this._conexao.Open();
}
public void Desconectar()
{
this._conexao.Close();
}
}
}
Example of database configuration form and connection: File: configuracao_banco_de_dados.Cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.IO;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
using DAL;
using System.Data.SqlClient;
namespace GUI
{
public partial class configuracao_banco_de_dados : Form
{
public configuracao_banco_de_dados()
{
InitializeComponent();
}
private void btSalvar_Click(object sender, EventArgs e)
{
try {
StreamWriter arquivo = new StreamWriter("ConfiguracaoBanco.txt", false);
arquivo.WriteLine(txtServidor.Text);
arquivo.WriteLine(txtBanco.Text);
arquivo.WriteLine(txtUsuario.Text);
arquivo.WriteLine(txtSenha.Text);
arquivo.Close();
MessageBox.Show("Arquivo Atualizado com sucesso!");
}
catch(Exception erro)
{
MessageBox.Show(erro.Message);
}
}
private void frmConfiguracaoBancoDados_Load(object sender, EventArgs e)
{
try
{
StreamReader arquivo = new StreamReader("ConfiguracaoBanco.txt");
txtServidor.Text = arquivo.ReadLine();
txtBanco.Text = arquivo.ReadLine();
txtUsuario.Text = arquivo.ReadLine();
txtSenha.Text = arquivo.ReadLine();
arquivo.Close();
}
catch (Exception erro)
{
MessageBox.Show(erro.Message);
}
}
private void btTestar_Click(object sender, EventArgs e)
{
try
{
DadosDaConexao.servidor = txtServidor.Text;
DadosDaConexao.banco = txtBanco.Text;
DadosDaConexao.usuario = txtUsuario.Text;
DadosDaConexao.senha = txtSenha.Text;
//testar a conexao
SqlConnection conexao = new SqlConnection();
conexao.ConnectionString = DadosDaConexao.StringDeConexao;
conexao.Open();
conexao.Close();
MessageBox.Show("Conexão efetuada com sucesso");
}
catch (SqlException errob)
{
MessageBox.Show("Erro na conexão ao banco de dados \n" +
"Verifique os dados transcritos");
}
catch (Exception erros)
{
MessageBox.Show(erros.Message);
}
}
private void button1_Click(object sender, EventArgs e)
{
this.Close();
}
}
}
Example of product registration form: Archive: cadastro_produto.Cs
using BLL;
using DAL;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Globalization;
using System.Text;
using System.Windows.Forms;
using Modelo;
using GUI;
using System.IO;
namespace GUI
{
public partial class cadastro_produto : GUI.formulario_cadastro
{
public string foto = "";
public cadastro_produto()
{
InitializeComponent();
}
private void btInserir_Click(object sender, EventArgs e)
{
this.operacao = "inserir";
this.alteraBotoes(2);
}
private void LimpaTela()
{
txtCodigo.Clear();
txtNome.Clear();
txtDescricao.Clear();
txtValorPago.Clear();
txtValorVenda.Clear();
txtQtde.Clear();
this.foto = "";
pbFoto.Image = null;
}
private void frmCadastroProduto_Load(object sender, EventArgs e)
{
this.alteraBotoes(1);
//combo da categoria
DALConexao cx = new DALConexao(DadosDaConexao.StringDeConexao);
BLLCategoria bll = new BLLCategoria(cx);
cbCategoria.DataSource = bll.Localizar("");
cbCategoria.DisplayMember = "cat_nome";
cbCategoria.ValueMember = "cat_cod";
try
{
//combo da subcategoria
BLLSubCategoria sbll = new BLLSubCategoria(cx);
cbSubCategoria.DataSource = sbll.LocalizarPorCategoria((int)cbCategoria.SelectedValue);
cbSubCategoria.DisplayMember = "scat_nome";
cbSubCategoria.ValueMember = "scat_cod";
}
catch
{
//MessageBox.Show("Cadastre uma categoria");
}
//combo und medida
BLLUnidadeDeMedida ubll = new BLLUnidadeDeMedida(cx);
cbUnd.DataSource = ubll.Localizar("");
cbUnd.DisplayMember = "umed_nome";
cbUnd.ValueMember = "umed_cod";
}
private void txtValorPago_KeyPress(object sender, KeyPressEventArgs e)
{
if (!Char.IsDigit(e.KeyChar) && e.KeyChar != (char)8 && e.KeyChar != ',' && e.KeyChar != '.')
{
e.Handled = true;
}
if (e.KeyChar == ',' || e.KeyChar == '.')
{
if (!txtValorPago.Text.Contains(","))
{
e.KeyChar = ',';
}
else e.Handled = true;
}
}
private void txtValorPago_Leave(object sender, EventArgs e)
{
if (txtValorPago.Text.Contains(",") == false)
{
txtValorPago.Text += ",00";
}
else
{
if (txtValorPago.Text.IndexOf(",")==txtValorPago.Text.Length-1)
{
txtValorPago.Text += "00";
}
}
try
{
Double d = Convert.ToDouble(txtValorPago.Text);
}
catch
{
txtValorPago.Text = "0,00";
}
}
private void txtValorVenda_KeyPress(object sender, KeyPressEventArgs e)
{
if (!Char.IsDigit(e.KeyChar) && e.KeyChar != (char)8 && e.KeyChar != ',' && e.KeyChar != '.')
{
e.Handled = true;
}
if (e.KeyChar == ',' || e.KeyChar == '.')
{
if (!txtValorVenda.Text.Contains(","))
{
e.KeyChar = ',';
}
else e.Handled = true;
}
}
private void txtValorVenda_Leave(object sender, EventArgs e)
{
if (txtValorVenda.Text.Contains(",") == false)
{
txtValorVenda.Text += ",00";
}
else
{
if (txtValorVenda.Text.IndexOf(",") == txtValorVenda.Text.Length - 1)
{
txtValorVenda.Text += "00";
}
}
try
{
Double d = Convert.ToDouble(txtValorVenda.Text);
}
catch
{
txtValorVenda.Text = "0,00";
}
}
private void txtQtde_KeyPress(object sender, KeyPressEventArgs e)
{
if (!Char.IsDigit(e.KeyChar) && e.KeyChar != (char)8 && e.KeyChar != ',' && e.KeyChar != '.')
{
e.Handled = true;
}
if (e.KeyChar == ',' || e.KeyChar == '.')
{
if (!txtQtde.Text.Contains(","))
{
e.KeyChar = ',';
}
else e.Handled = true;
}
}
private void txtQtde_Leave(object sender, EventArgs e)
{
if (txtQtde.Text.Contains(",") == false)
{
txtQtde.Text += ",00";
}
else
{
if (txtQtde.Text.IndexOf(",") == txtQtde.Text.Length - 1)
{
txtQtde.Text += "00";
}
}
try
{
Double d = Convert.ToDouble(txtQtde.Text);
}
catch
{
txtQtde.Text = "0,00";
}
}
private void btAlterar_Click(object sender, EventArgs e)
{
this.operacao = "alterar";
this.alteraBotoes(2);
}
private void btSalvar_Click(object sender, EventArgs e)
{
try
{
//leitura dos dados
ModeloProduto modelo = new ModeloProduto();
modelo.ProNome = txtNome.Text;
modelo.ProDescricao = txtDescricao.Text;
modelo.ProValorPago = Convert.ToDouble(txtValorPago.Text);
modelo.ProValorVenda = Convert.ToDouble(txtValorVenda.Text);
modelo.ProQtde = Convert.ToDouble(txtQtde.Text);
modelo.UmedCod = Convert.ToInt32(cbUnd.SelectedValue);
modelo.CatCod = Convert.ToInt32(cbCategoria.SelectedValue);
modelo.ScatCod = Convert.ToInt32(cbSubCategoria.SelectedValue);
//obj para gravar os dados no banco
DALConexao cx = new DALConexao(DadosDaConexao.StringDeConexao);
BLLProduto bll = new BLLProduto(cx);
if (this.operacao == "inserir")
{
//cadastrar uma Produto
modelo.CarregaImagem(this.foto);
bll.Incluir(modelo);
MessageBox.Show("Cadastro efetuado: Código " + modelo.ProCod.ToString());
}
else
{
modelo.ProCod = Convert.ToInt32(txtCodigo.Text);
//alterar um produto
if ( this.foto == "Foto Original")
{
ModeloProduto mt = bll.CarregaModeloProduto(modelo.ProCod);
modelo.ProFoto = mt.ProFoto;
}
else
{
modelo.CarregaImagem(this.foto);
}
bll.Alterar(modelo);
MessageBox.Show("Cadastro alterado");
}
this.LimpaTela();
this.alteraBotoes(1);
}
catch (Exception erro)
{
MessageBox.Show(erro.Message);
}
}
private void cbCategoria_SelectedIndexChanged(object sender, EventArgs e)
{
//combo da categoria
DALConexao cx = new DALConexao(DadosDaConexao.StringDeConexao);
try
{
cbSubCategoria.Text = "";
//combo da subcategoria
BLLSubCategoria sbll = new BLLSubCategoria(cx);
cbSubCategoria.DataSource = sbll.LocalizarPorCategoria((int)cbCategoria.SelectedValue);
cbSubCategoria.DisplayMember = "scat_nome";
cbSubCategoria.ValueMember = "scat_cod";
}
catch
{
//MessageBox.Show("Cadastre uma categoria");
}
}
private void btLoFoto_Click(object sender, EventArgs e)
{
OpenFileDialog od = new OpenFileDialog();
od.ShowDialog();
if (!string.IsNullOrEmpty(od.FileName))
{
this.foto = od.FileName;
pbFoto.Load(this.foto);
}
}
private void btRmFoto_Click(object sender, EventArgs e)
{
this.foto = "";
pbFoto.Image = null;
}
private void btLocalizar_Click(object sender, EventArgs e)
{
consulta_produto f = new consulta_produto();
f.ShowDialog();
if (f.codigo != 0)
{
DALConexao cx = new DALConexao(DadosDaConexao.StringDeConexao);
BLLProduto bll = new BLLProduto(cx);
ModeloProduto modelo = bll.CarregaModeloProduto(f.codigo);
txtCodigo.Text = modelo.CatCod.ToString();
//colocar os dados na tela
txtCodigo.Text = modelo.ProCod.ToString();
txtDescricao.Text = modelo.ProDescricao;
txtNome.Text = modelo.ProNome;
txtQtde.Text = modelo.ProQtde.ToString();
txtValorPago.Text = modelo.ProValorPago.ToString();
txtValorVenda.Text = modelo.ProValorVenda.ToString();
cbCategoria.SelectedValue = modelo.CatCod;
cbSubCategoria.SelectedValue = modelo.ScatCod;
cbUnd.SelectedValue = modelo.UmedCod;
try
{
MemoryStream ms = new MemoryStream(modelo.ProFoto);
pbFoto.Image = Image.FromStream(ms);
this.foto = "Foto Original";
}
catch {}
txtQtde_Leave(sender,e);
txtValorPago_Leave(sender, e);
txtValorVenda_Leave(sender, e);
alteraBotoes(3);
}
else
{
this.LimpaTela();
this.alteraBotoes(1);
}
f.Dispose();
}
private void btExcluir_Click(object sender, EventArgs e)
{
try
{
DialogResult d = MessageBox.Show("Deseja excluir o registro?", "Aviso", MessageBoxButtons.YesNo);
if (d.ToString() == "Yes")
{
DALConexao cx = new DALConexao(DadosDaConexao.StringDeConexao);
BLLProduto bll = new BLLProduto(cx);
bll.Excluir(Convert.ToInt32(txtCodigo.Text));
this.LimpaTela();
this.alteraBotoes(1);
}
}
catch
{
MessageBox.Show("Impossível excluir o registro. \n O registro esta sendo utilizado em outro local.");
this.alteraBotoes(3);
}
}
private void btCancelar_Click(object sender, EventArgs e)
{
this.alteraBotoes(1);
this.LimpaTela();
}
private void pnBotoes_Paint(object sender, PaintEventArgs e)
{
}
private void btaddCategoria_Click(object sender, EventArgs e)
{
cadastro_categoria f = new cadastro_categoria();
f.ShowDialog();
f.Dispose();
//combo da categoria
DALConexao cx = new DALConexao(DadosDaConexao.StringDeConexao);
BLLCategoria bll = new BLLCategoria(cx);
cbCategoria.DataSource = bll.Localizar("");
cbCategoria.DisplayMember = "cat_nome";
cbCategoria.ValueMember = "cat_cod";
try
{
//combo da subcategoria
BLLSubCategoria sbll = new BLLSubCategoria(cx);
cbSubCategoria.DataSource = sbll.LocalizarPorCategoria((int)cbCategoria.SelectedValue);
cbSubCategoria.DisplayMember = "scat_nome";
cbSubCategoria.ValueMember = "scat_cod";
}
catch
{
//MessageBox.Show("Cadastre uma categoria");
}
}
private void btaddSubCategoria_Click(object sender, EventArgs e)
{
cadastro_sub_categoria f = new cadastro_sub_categoria();
f.ShowDialog();
f.Dispose();
//combo da categoria
DALConexao cx = new DALConexao(DadosDaConexao.StringDeConexao);
try
{
//combo da subcategoria
BLLSubCategoria sbll = new BLLSubCategoria(cx);
cbSubCategoria.DataSource = sbll.LocalizarPorCategoria((int)cbCategoria.SelectedValue);
cbSubCategoria.DisplayMember = "scat_nome";
cbSubCategoria.ValueMember = "scat_cod";
}
catch
{
//MessageBox.Show("Cadastre uma categoria");
}
}
private void btAddUnidadeMedida_Click(object sender, EventArgs e)
{
cadastro_unidade_medida f = new cadastro_unidade_medida();
f.ShowDialog();
f.Dispose();
DALConexao cx = new DALConexao(DadosDaConexao.StringDeConexao);
//combo und medida
BLLUnidadeDeMedida ubll = new BLLUnidadeDeMedida(cx);
cbUnd.DataSource = ubll.Localizar("");
cbUnd.DisplayMember = "umed_nome";
cbUnd.ValueMember = "umed_cod";
}
}
}
Example of category registration form: Archive: cadastro_categoria.Cs
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Text;
using System.Windows.Forms;
using Modelo;
using DAL;
using BLL;
namespace GUI
{
public partial class cadastro_categoria : GUI.formulario_cadastro
{
public cadastro_categoria()
{
InitializeComponent();
}
public void LimpaTela()
{
txtCodigo.Clear();
txtNome.Clear();
}
private void frmCadastroCategoria_Load(object sender, EventArgs e)
{
this.alteraBotoes(1);
}
private void btInserir_Click(object sender, EventArgs e)
{
this.operacao = "inserir";
this.alteraBotoes(2);
}
private void btCancelar_Click(object sender, EventArgs e)
{
this.LimpaTela();
this.alteraBotoes(1);
}
private void btSalvar_Click(object sender, EventArgs e)
{
try
{
//leitura dos dados
ModeloCategoria modelo = new ModeloCategoria();
modelo.CatNome = txtNome.Text;
//obj para gravar os dados no banco
DALConexao cx = new DALConexao(DadosDaConexao.StringDeConexao);
BLLCategoria bll = new BLLCategoria(cx);
if (this.operacao == "inserir")
{
//cadastrar uma categoria
bll.Incluir(modelo);
MessageBox.Show("Cadastro efetuado: Código "+modelo.CatCod.ToString());
}
else
{
//alterar uma categoria
modelo.CatCod = Convert.ToInt32(txtCodigo.Text);
bll.Alterar(modelo);
MessageBox.Show("Cadastro alterado");
}
this.LimpaTela();
this.alteraBotoes(1);
}
catch(Exception erro)
{
MessageBox.Show(erro.Message);
}
}
private void btAlterar_Click(object sender, EventArgs e)
{
this.operacao = "alterar";
this.alteraBotoes(2);
}
private void btExcluir_Click(object sender, EventArgs e)
{
try
{
DialogResult d = MessageBox.Show("Deseja excluir o registro?", "Aviso", MessageBoxButtons.YesNo);
if (d.ToString() == "Yes")
{
DALConexao cx = new DALConexao(DadosDaConexao.StringDeConexao);
BLLCategoria bll = new BLLCategoria(cx);
bll.Excluir(Convert.ToInt32(txtCodigo.Text));
this.LimpaTela();
this.alteraBotoes(1);
}
}
catch
{
MessageBox.Show("Impossível excluir o registro. \n O registro esta sendo utilizado em outro local.");
this.alteraBotoes(3);
}
}
private void btLocalizar_Click(object sender, EventArgs e)
{
consulta_categoria f = new consulta_categoria();
f.ShowDialog();
if (f.codigo != 0)
{
DALConexao cx = new DALConexao(DadosDaConexao.StringDeConexao);
BLLCategoria bll = new BLLCategoria(cx);
ModeloCategoria modelo = bll.CarregaModeloCategoria(f.codigo);
txtCodigo.Text = modelo.CatCod.ToString();
txtNome.Text = modelo.CatNome;
alteraBotoes(3);
}
else
{
this.LimpaTela();
this.alteraBotoes(1);
}
f.Dispose();
}
}
}
Example of vendor query screen: File: consult_fornecedor.Cs
using BLL;
using DAL;
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;
namespace GUI
{
public partial class consulta_fornecedor : Form
{
public int codigo = 0;
public consulta_fornecedor()
{
InitializeComponent();
}
private void btLocalizar_Click(object sender, EventArgs e)
{
DALConexao cx = new DALConexao(DadosDaConexao.StringDeConexao);
BLLFornecedor bll = new BLLFornecedor(cx);
if (rbNome.Checked == true)
{
dgvDados.DataSource = bll.LocalizarPorNome(txtValor.Text);
}
else
{
dgvDados.DataSource = bll.LocalizarPorCNPJ(txtValor.Text);
}
}
private void frmConsultaFornecedor_Load(object sender, EventArgs e)
{
btLocalizar_Click(sender, e);
dgvDados.Columns[0].HeaderText = "Código";
//dgvDados.Columns[0].Width = 50;
dgvDados.Columns[1].HeaderText = "Nome";
//dgvDados.Columns[1].Width = 700;
dgvDados.Columns[2].HeaderText = "Razão Social";
dgvDados.Columns[3].HeaderText = "IE";
dgvDados.Columns[4].HeaderText = "CNPJ";
dgvDados.Columns[5].HeaderText = "CEP";
dgvDados.Columns[6].HeaderText = "Endereço";
dgvDados.Columns[7].HeaderText = "Bairro";
dgvDados.Columns[8].HeaderText = "Fone";
dgvDados.Columns[9].HeaderText = "Celular";
dgvDados.Columns[10].HeaderText = "E-mail";
dgvDados.Columns[11].HeaderText = "Número";
dgvDados.Columns[12].HeaderText = "Cidade";
dgvDados.Columns[13].HeaderText = "Estado";
}
private void dgvDados_CellDoubleClick(object sender, DataGridViewCellEventArgs e)
{
if (e.RowIndex >= 0)
{
this.codigo = Convert.ToInt32(dgvDados.Rows[e.RowIndex].Cells[0].Value);
this.Close();
}
}
}
}
Thank you! I’ll test.
– Marlon Pereira
error:
where TConnection : class, IDbConnection, new()
Constraints are not allowed on non-generic declarationspublic DALConexao(String dadosConexao)
Method must have a Return type– Marlon Pereira
@Marlonleandro I improved the examples. See if it gets clearer.
– Leonel Sanches da Silva
Now he gave it: Using the Generic type
'DAL.DALConexao<TConnection>'
requires 1 type Arguments– Marlon Pereira
in the file: configuracao_banco_de_dados.Cs that I mentioned above, you have to change something, no?
– Marlon Pereira
Yes. You need me to put the
configuracao_banco_de_dados.cs
also?– Leonel Sanches da Silva
Please. Gave this error too: Now gave this: Using the Generic type
'DAL.DALConexao<TConnection>'
requires 1 type Arguments. - in all form connection configuration files– Marlon Pereira
@Marlonleandro As only need to change one line, I will not put the whole file. The explanation goes for the other files.
– Leonel Sanches da Silva