Array
(
)

Como fica esse codigo em C#

Djcacao
   - 15 mar 2006

Gente é o seguinte...

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...

Martins
   - 15 mar 2006

Para abrir um form é só fazer isso:

#Código
private void fornecedoresToolStripMenuItem_Click(object sender, EventArgs e)
{
Form2 mForm = new Form2();
mForm.Show();
}


Desculpe se entendi errado o q vc quer.

Djcacao
   - 15 mar 2006

Certo Martins, isso me ajudou....

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.

Martins
   - 16 mar 2006


Citação:
Certo Martins, isso me ajudou....

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.


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.

Emerson
   - 16 mar 2006

veja se assim funciona:
#Códigotry
{
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");
}