Fórum Como não registrar um registro repetido no Banco de Dados - MySql - C Sharp - Visual Studio 2019 #607894
03/02/2020
0

Rhyan
Curtir tópico
+ 0Posts
03/02/2020
Mauricio Espido
É necessário definir identificadores únicos na sua tabela de dados para impossibilitar repetições e tratar no seu sistema quando o usuário digitar o mesmo código.
Gostei + 0
04/02/2020
Rhyan
Gostei + 0
06/02/2020
Lourenço Lima
Gostei + 0
06/02/2020
Rhyan
Tipo assim, tenho minha tela de registro, Nome, E-mail e Senha;
**Programa pronto;
*Usuário 1 se registra, coloca Nome, senha e um e-mail(teste@gmail.com) - Registra
*Usuário 2 vai lá se registrar, coloca as coisas, mas ele acaba colocando também o e-mail(teste@gmail.com) - Repetido
*Um algorítimo que está no banco de dados, vai acessar o banco de dados e olhar se o e-mail = teste@gmail.com já existe, se existe irá parar a operação e limpar os campos, com um alerta de e-mail já registrado, caso não, mostra uma mensagem de sucesso e entra na próxima página
Basicamente é isso, que eu quero fazer, Lourenço
Gostei + 0
07/02/2020
Lourenço Lima
Tipo assim, tenho minha tela de registro, Nome, E-mail e Senha;
**Programa pronto;
*Usuário 1 se registra, coloca Nome, senha e um e-mail(teste@gmail.com) - Registra
*Usuário 2 vai lá se registrar, coloca as coisas, mas ele acaba colocando também o e-mail(teste@gmail.com) - Repetido
*Um algorítimo que está no banco de dados, vai acessar o banco de dados e olhar se o e-mail = teste@gmail.com já existe, se existe irá parar a operação e limpar os campos, com um alerta de e-mail já registrado, caso não, mostra uma mensagem de sucesso e entra na próxima página
Basicamente é isso, que eu quero fazer, Lourenço
Olá,
Supondo que sua aplicação seja Windows Forms e que...
UsuarioContext seja o contexto.
txtNome, txtEmail, txtSenha sejam os textboxs do Nome, Email e Senha, respectivamente.
Usuario seja a classe do usuário.
Usuarios seja a tabela.
Tela seja a segunda tela que será aberta ao usuário se cadastrar.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | using (var contexto = new UsuarioContext()) { // Tentará encontrar o primeiro registro que o Email for o mesmo que o digitado pelo usuário. Caso retorne nulo, ou seja não encontre... if (contexto.Usuarios.Where(x => x.Email == txtEmail.Text).FirstOrDefault() == null ) { Usuario usuario = new Usuario(); // Atribuição dos campos usuario.Nome = txtNome.Text; usuario.Email = txtEmail.Text; usuario.Senha = txtSenha.Text; contexto.Add(usuario); // Adiciona o Usuário contexto.SaveChanges(); // Salva as alterações no Banco de Dados Tela tela = new Tela(); tela.Show(); // Abrir o outro form this .Hide(); // Fechar o form atual } else // Caso contrário, ou seja, caso encontre um usuário com o mesmo email { MessageBox.Show( "Usuário já existente" , "Erro ao Cadastrar Usuário" , MessageBoxButtons.OK, MessageBoxIcon.Error); // Exibe mensagem de erro // Limpar os campos txtNome.Clear(); txtEmail.Clear(); txtSenha.Clear(); txtUsuario.Focus(); // O cursor é redirecionado } } |
Sugestões de melhorias para o sistema:
- Verificar se há campos obrigatórios vazios e, caso tenha, exiba mensagem de erro.
- Criar textbox para Confirmar Senha e, verificar se a Senha é igual a Confirmação de Senha. Em caso negativo, exibirá mensagem de erro.
- Permitir que o usuário, quando já estiver logado no sistema, possa alterar sua senha.
Espero ter ajudado!
Caso tenha mais alguma dúvida, farei o possível para ajudá-lo!
Gostei + 0
10/02/2020
Rhyan
Tipo assim, tenho minha tela de registro, Nome, E-mail e Senha;
**Programa pronto;
*Usuário 1 se registra, coloca Nome, senha e um e-mail(teste@gmail.com) - Registra
*Usuário 2 vai lá se registrar, coloca as coisas, mas ele acaba colocando também o e-mail(teste@gmail.com) - Repetido
*Um algorítimo que está no banco de dados, vai acessar o banco de dados e olhar se o e-mail = teste@gmail.com já existe, se existe irá parar a operação e limpar os campos, com um alerta de e-mail já registrado, caso não, mostra uma mensagem de sucesso e entra na próxima página
Basicamente é isso, que eu quero fazer, Lourenço
Olá,
Supondo que sua aplicação seja Windows Forms e que...
UsuarioContext seja o contexto.
txtNome, txtEmail, txtSenha sejam os textboxs do Nome, Email e Senha, respectivamente.
Usuario seja a classe do usuário.
Usuarios seja a tabela.
Tela seja a segunda tela que será aberta ao usuário se cadastrar.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | using (var contexto = new UsuarioContext()) { // Tentará encontrar o primeiro registro que o Email for o mesmo que o digitado pelo usuário. Caso retorne nulo, ou seja não encontre... if (contexto.Usuarios.Where(x => x.Email == txtEmail.Text).FirstOrDefault() == null ) { Usuario usuario = new Usuario(); // Atribuição dos campos usuario.Nome = txtNome.Text; usuario.Email = txtEmail.Text; usuario.Senha = txtSenha.Text; contexto.Add(usuario); // Adiciona o Usuário contexto.SaveChanges(); // Salva as alterações no Banco de Dados Tela tela = new Tela(); tela.Show(); // Abrir o outro form this .Hide(); // Fechar o form atual } else // Caso contrário, ou seja, caso encontre um usuário com o mesmo email { MessageBox.Show( "Usuário já existente" , "Erro ao Cadastrar Usuário" , MessageBoxButtons.OK, MessageBoxIcon.Error); // Exibe mensagem de erro // Limpar os campos txtNome.Clear(); txtEmail.Clear(); txtSenha.Clear(); txtUsuario.Focus(); // O cursor é redirecionado } } |
Sugestões de melhorias para o sistema:
- Verificar se há campos obrigatórios vazios e, caso tenha, exiba mensagem de erro.
- Criar textbox para Confirmar Senha e, verificar se a Senha é igual a Confirmação de Senha. Em caso negativo, exibirá mensagem de erro.
- Permitir que o usuário, quando já estiver logado no sistema, possa alterar sua senha.
Espero ter ajudado!
Caso tenha mais alguma dúvida, farei o possível para ajudá-lo!
Não saquei muito no "UsuarioContext()" não entendi o que fazer
Gostei + 0
13/02/2020
Lourenço Lima
Tipo assim, tenho minha tela de registro, Nome, E-mail e Senha;
**Programa pronto;
*Usuário 1 se registra, coloca Nome, senha e um e-mail(teste@gmail.com) - Registra
*Usuário 2 vai lá se registrar, coloca as coisas, mas ele acaba colocando também o e-mail(teste@gmail.com) - Repetido
*Um algorítimo que está no banco de dados, vai acessar o banco de dados e olhar se o e-mail = teste@gmail.com já existe, se existe irá parar a operação e limpar os campos, com um alerta de e-mail já registrado, caso não, mostra uma mensagem de sucesso e entra na próxima página
Basicamente é isso, que eu quero fazer, Lourenço
Olá,
Supondo que sua aplicação seja Windows Forms e que...
UsuarioContext seja o contexto.
txtNome, txtEmail, txtSenha sejam os textboxs do Nome, Email e Senha, respectivamente.
Usuario seja a classe do usuário.
Usuarios seja a tabela.
Tela seja a segunda tela que será aberta ao usuário se cadastrar.
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 | using (var contexto = new UsuarioContext()) { // Tentará encontrar o primeiro registro que o Email for o mesmo que o digitado pelo usuário. Caso retorne nulo, ou seja não encontre... if (contexto.Usuarios.Where(x => x.Email == txtEmail.Text).FirstOrDefault() == null ) { Usuario usuario = new Usuario(); // Atribuição dos campos usuario.Nome = txtNome.Text; usuario.Email = txtEmail.Text; usuario.Senha = txtSenha.Text; contexto.Add(usuario); // Adiciona o Usuário contexto.SaveChanges(); // Salva as alterações no Banco de Dados Tela tela = new Tela(); tela.Show(); // Abrir o outro form this .Hide(); // Fechar o form atual } else // Caso contrário, ou seja, caso encontre um usuário com o mesmo email { MessageBox.Show( "Usuário já existente" , "Erro ao Cadastrar Usuário" , MessageBoxButtons.OK, MessageBoxIcon.Error); // Exibe mensagem de erro // Limpar os campos txtNome.Clear(); txtEmail.Clear(); txtSenha.Clear(); txtUsuario.Focus(); // O cursor é redirecionado } } |
Sugestões de melhorias para o sistema:
- Verificar se há campos obrigatórios vazios e, caso tenha, exiba mensagem de erro.
- Criar textbox para Confirmar Senha e, verificar se a Senha é igual a Confirmação de Senha. Em caso negativo, exibirá mensagem de erro.
- Permitir que o usuário, quando já estiver logado no sistema, possa alterar sua senha.
Espero ter ajudado!
Caso tenha mais alguma dúvida, farei o possível para ajudá-lo!
Não saquei muito no "UsuarioContext()" não entendi o que fazer
Hm, então acho que terei que te explicar várias coisas do programa para você compreender melhor...
Se você puder, me adiciona no Discord (Lourenço Lima#0486), por favor! Daí te explico direitinho como pode ser feito!
Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)