Fórum Como fica esse codigo em C# #20193
15/03/2006
0
estou fazendo um controle de acesso ao banco de dados do usuário, ja fiz a seleção do usuario digitado na tabela de usuarios, porem agora precisso saber se a senha digitada esta correta...
todos os exemplos que achei, trabalha da seguinte forma: fazem o select com o parametro para usuario e senha e depois conta um cursor para saber se algo foi achado, só que isso fica muito suspeito....
oque to querendo é fazer um select na tabela de usuário e depois verificar se o usuario existe e se a senha esta correta.
o código que ja tenho é esse:
try
{
fbComm_atual.CommandText = ´select * from dbf_usuario where (usuario = @p_usu) and (senha = @p_senha)´;
fbComm_atual.Parameters.Clear();
fbComm_atual.Parameters.Add(´@p_usu´, edt_usuario.Text.ToString());
fbComm_atual.Parameters.Add(´@p_senha´, edt_senha.Text.ToString());
fbConnection.Open();
FirebirdSql.Data.FirebirdClient.FbDataReader usuario = fbComm_atual.ExecuteReader();
if (!usuario.Read())
{
System.Windows.Forms.MessageBox.Show(´Não foi possível encontrar o Usuário´, ´Harp ERP´);
usuario.Close();
fbConnection.Close();
edt_usuario.Clear();
edt_senha.Clear();
edt_usuario.Focus();
return;
}
//if (ds_usuario.Tables[´usuario´].Rows[1][´usuario´] == edt_usuario.Text.ToString())
//{
//System.Windows.Forms.MessageBox.Show(´aaaaaaaaa´, ´Harp ERP´);
//}
if (USUARIO.ColumnName[2].ToString() == edt_usuario.Text.ToString())
{
System.Windows.Forms.MessageBox.Show(´o usuario não é igual´, ´Harp ERP´);
}
else
{
System.Windows.Forms.MessageBox.Show(´não é igual o usuario´, ´Harp ERP´);
}
usuario.Close();
System.Windows.Forms.MessageBox.Show(´Achou algo´, ´Harp ERP´);
fbConnection.Close();
}
catch
{
fbConnection.Close();
System.Windows.Forms.MessageBox.Show(´´catch´ Não foi possível acessar ao ´Banco de Dados´´, ´Harp ERP´);
}
-------------------------------------
gostaria de um exemplo facil e bom ou somente do codigo.... e como se abre um novo form se o usuario e senha estiver ok... ?
esse é o codigo que tenho no delphi:
TClientDataSet(ds_Consulta_Usuario.DataSet).Close;
TClientDataSet(ds_Consulta_Usuario.DataSet).Params.ParamByName(´USUARIO´).AsString := Edit_Usuario.Text;
TClientDataSet(ds_Consulta_Usuario.DataSet).Open;
if TClientDataSet(ds_Consulta_Usuario.DataSet).IsEmpty then
begin
// Usuario não cadastrado
// Chamada da Regra para Mensagem Personalizada
RegraNegocio := TRegraNegocio.Create;
RegraNegocio.RN_Mensagem_Usuario_Invalido;
FreeAndNil(RegraNegocio);
end
else
begin
// Achou Usuario, testar data e senha
// Testando a Data de Exclusão
if TClientDataSet(ds_Consulta_Usuario.DataSet).FieldByName(´DATA_EXCLUSAO´).AsString <> ´´ then
begin
// Chamada da Regra para Mensagem Personalizada
RegraNegocio := TRegraNegocio.Create;
RegraNegocio.RN_Mensagem_Usuario_Bloqueado;
FreeAndNil(RegraNegocio);
end
else
begin
// Testando a Senha
if TClientDataSet(ds_Consulta_Usuario.DataSet).FieldByName(´SENHA´).AsString <> Edit_Senha.Text then
begin
// Chamada da Regra para Mensagem Personalizada
RegraNegocio := TRegraNegocio.Create;
RegraNegocio.RN_Mensagem_Senha_Incorreta;
FreeAndNil(RegraNegocio);
end
else
begin
// Usuário Aceito
// Crio o menu principal
Usuario := TUsuario.Create;
Usuario.Seta_Usuario(Edit_Usuario.Text,
TClientDataSet(ds_Consulta_Usuario.DataSet).fieldbyname(´cod_pessoa´).AsFloat);
FrmMenuPrincipal := TFrmMenuPrincipal.Create(Self);
FrmMenuPrincipal.StatusBar1.Panels[0].Text := ´Usuário.: ´ + Edit_Usuario.Text;
FrmControleAcesso.Hide;
FrmMenuPrincipal.ShowModal;
FreeAndNil(FrmMenuPrincipal);
FreeAndNil(Usuario);
FrmControleAcesso.Show;
end;
end;
end;
---------------------------------------
meu e-mail: djcacao@gmail.com
por favor, alguem me ajude...
Djcacao
Curtir tópico
+ 0Posts
15/03/2006
Martins
private void fornecedoresToolStripMenuItem_Click(object sender, EventArgs e)
{
Form2 mForm = new Form2();
mForm.Show();
}
Desculpe se entendi errado o q vc quer.
Gostei + 0
15/03/2006
Djcacao
mas referente a consulta de senha, e outros dados, qual o conceito que é empregado no C?
Tipo, como posso fazer a verificação dos registros selecionados.
Gostei + 0
16/03/2006
Martins
Nesse caso senha / usuário estariam armazenados no BD - Firebird não é isso?
Então, monte sua consulta Sql e retorne o valor dela para ser comparado com a informação prestada no login.
Vou ver se monto algo com código C e posto aqui.
Gostei + 0
16/03/2006
Emerson Nascimento
try
{
fbComm_atual.CommandText = "select DATA_EXCLUSAO, SENHA from dbf_usuario where (usuario = @p_usu)";
fbComm_atual.Parameters.Clear();
fbComm_atual.Parameters.Add("@p_usu", edt_usuario.Text.ToString());
fbConnection.Open();
FirebirdSql.Data.FirebirdClient.FbDataReader usuario = fbComm_atual.ExecuteReader();
vazio = !usuario.Read();
if (!vazio)
{
dataexclusao = usuario.ColumnName[0].ToString();
senha = usuario.ColumnName[1].ToString();
}
else
{
dataexclusao = "";
senha = "";
}
usuario.Close();
fbConnection.Close(); // vai mesmo fechar a conexão?
if (vazio)
{
// Usuario não cadastrado
System.Windows.Forms.MessageBox.Show("Não foi possível encontrar o Usuário", "Harp ERP");
edt_usuario.Clear();
edt_senha.Clear();
edt_usuario.Focus();
return;
}
else
{
// Achou Usuario, testar data e senha
// Testando a Data de Exclusão
if (dataexclusao <> ´´)
{
System.Windows.Forms.MessageBox.Show("Usuario bloqueado", "Harp ERP");
}
else
{
// Testando a Senha
if (senha <> edt_senha.Text)
{
System.Windows.Forms.MessageBox.Show("Senha inválida", "Harp ERP");
}
else
{
// Crio o menu principal
FrmMenuPrincipal FrmMnuPrincipal = new FrmMenuPrincipal();
FrmMnuPrincipal.Show();
}
}
}
catch
{
fbConnection.Close();
System.Windows.Forms.MessageBox.Show("Não foi possível acessar o banco de dados", "Harp ERP");
}Gostei + 0
Clique aqui para fazer login e interagir na Comunidade :)