Fórum fazer uma consulta no banco (mysql) e comparar o retorno da consulta. #578234
22/03/2017
0
e o seguinte: quero fazer um consulta no banco de dados, e ver se tem aquele mesmo dado la, tipo, é pra evitar que dados fiquem duplicados.
Junior Gutekoski
Curtir tópico
+ 0Post mais votado
22/03/2017
Então, se você quer evitar que dados fiquem duplicados, acho que você deveria definir essa coluna como Chave Primária.
Uma coluna que é Chave Primária identifica de maneira única um registro, assim mesmo que você tente adicionar un registro com essa mesma Chave Primária o Banco de Dados lançará uma exceção e impedirá a tarefa de ser concluída,
Por exemplo, para um cadastro em um site, você pode definir o e-mail como uma coluna Chave Primária. Assim, se algum usuário tentar se registrar com um e-mail já existente, um erro seria lançado!
Um abraço
Luis Mesa
Gostei + 1
Mais Posts
22/03/2017
Junior Gutekoski
Gostei + 0
22/03/2017
Luis Mesa
O CPF será obrigatório para o cadastro? Se sim, eu recomendaria substituir a sua chave primária Id auto-incrementada pelo CPF. Assim você nao gastará tempo tentando validar se existe já um CPF existente ou nao.
Se ainda assim você quiser seguir do jeito que tá, poderá usar LINQ, que permite a realizaçao de consultas independente dos detalhes da implementaçao do que você esteja utilizando.
Imagina que os dados de sua tabela estejam em uma lista chamada Usuarios, que armazena objetos de tipo Usuario.
var jaExiste = Usuarios.Any(u=> u.Cpf == "111111111"); // Se existe algum usuario com CPF "111111111", retornará verdadeiro.
if (jaExiste)
//faz nada
Ajudaria bastante se soubessemos como você está armazenando os dados. :)
Gostei + 1
22/03/2017
Junior Gutekoski
esse e basicamente a codigo que estou fazendo:
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;
using MySql.Data.MySqlClient;
namespace CadClientes
{
public partial class Form1 : Form
{
public Form1()
{
InitializeComponent();
}
public void limpa()
{
//metodo para limpar todos os controles
foreach (Control controle in this.Controls)
{
if (controle is TextBox || controle is MaskedTextBox || controle is ComboBox)
{
//limpa tudo
controle.Text = string.Empty;
}
}
}
public void salvar_dados()
{
//conexão
MySqlConnection conn = new MySqlConnection("Server = localhost; Database = loja; Uid = root; Pwd =");
//abre conexão
conn.Open();
try
{
//inserção de dados no B.D.
MySqlCommand cmd = new MySqlCommand("INSERT INTO clientes (nome, cpf, email, telefone, endereco, bairro, cidade, cep, uf, data_cadastro) VALUES (@nome, @cpf, @email, @telefone, @endereco, @bairro, @cidade, @cep, @uf, @data_cadastro)", conn);
cmd.Parameters.AddWithValue("@nome", txtNome.Text);
cmd.Parameters.AddWithValue("@cpf", maskedCpf.Text);
cmd.Parameters.AddWithValue("@email", txtEmail.Text);
cmd.Parameters.AddWithValue("@telefone", maskedTel.Text);
cmd.Parameters.AddWithValue("@endereco", txtEndereco.Text);
cmd.Parameters.AddWithValue("@bairro", txtBairro.Text);
cmd.Parameters.AddWithValue("@cidade", txtCidade.Text);
cmd.Parameters.AddWithValue("@cep", maskedCep.Text);
cmd.Parameters.AddWithValue("@uf", txtUf.Text);
cmd.Parameters.AddWithValue("@data_cadastro", lebelDataCadastro.Text);
cmd.ExecuteNonQuery();
//mostra mensagem
MessageBox.Show("Salvo!!!");
}
catch
{
MessageBox.Show("Não salvo!!!");
}
finally
{
//fecha conexão
conn.Close();
}
}
private void button1_Click(object sender, EventArgs e)
{
//chamo o metodo de salvar dados.
salvar_dados();
}
private void btnLimpar_Click(object sender, EventArgs e)
{
//chama o metodo limpa
limpa();
}
private void timer2_Tick(object sender, EventArgs e)
{
//pega a hora do sistema
lebelDataCadastro.Text = DateTime.Now.ToString();
}
}
}
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)