Como fica esse codigo em C#
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
Posts
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.
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.
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.
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"); }
Clique aqui para fazer login e interagir na Comunidade :)