The VerifyLoginExist function tells you that the login still exists, but still continues to the next line of code and signs in. I want her to call and return to register for a new name. My database has the cod_user as primary key, user (string) and password (varchar).
private bool VerificiarLoginExistente(string usuario)
{
bool resultado = false;
string sql = "Select usuario From Usuario Where usuario = @usuario";
Conexao cl = new Conexao();
SqlConnection con = cl.conexao();
SqlCommand cmdQry = con.CreateCommand();
try
{
con.Open();
using (SqlCommand command = new SqlCommand(sql))
{
command.Connection = con;
command.Parameters.Add("@usuario", SqlDbType.VarChar).Value = tbUsuario;
using (SqlDataReader reader = command.ExecuteReader())
{
resultado = reader.Read();
reader.Close();
}
}
}
catch (Exception ex)
{
MessageBox.Show("Nome de usuário já existente");
}
finally
{
con.Close();
}
return resultado;
}
private void btnConfirmar_Click(object sender, EventArgs e)
{
Conexao cl = new Conexao();
SqlConnection con = cl.conexao();
SqlCommand cmdQry = con.CreateCommand();
string usuario, senha, confirmasenha;
usuario = tbUsuario.Text;
senha = tbSenha.Text;
confirmasenha = tbSenhaConfirm.Text;
if ((usuario == "") || (senha == "") || (confirmasenha == ""))
{
{
MessageBox.Show("Campos obrigatórios");
}
return;
}
if((VerificiarLoginExistente(usuario))== true)
{
return;
}
if (senha == confirmasenha)
{
cmdQry.CommandText = "INSERT INTO Usuario (usuario, senha)" + "Values(@usuario,@senha)";
cmdQry.Parameters.Add("@usuario", SqlDbType.VarChar, 50);
cmdQry.Parameters.Add("@senha", SqlDbType.VarChar, 50);
cmdQry.Parameters["@usuario"].Value = usuario;
cmdQry.Parameters["@senha"].Value = senha;
con.Open();
cmdQry.ExecuteNonQuery();
con.Close();
MessageBox.Show("Cadastro efetuado com sucesso!");
tbUsuario.Text = "";
tbSenhaConfirm.Text = "";
tbSenha.Text = "";
}
else
{
MessageBox.Show("Senhas não compatíveis !", "Aviso");
tbSenhaConfirm.Text = "";
tbSenha.Text = "";
tbSenha.Focus();
}
}