Dúvida cruel
16/03/2006
0
Grato desde ja
Djcacao
Posts
16/03/2006
Martins
Mas vc já fez isso antes, em sua outra rotina.
sqlCommand1.CommandText = "select * etc..."; System.Data.SqlClient.SqlDataReader Clientes = sqlCommand1.ExecuteReader(); if (! Clientes.Read()) { System.Windows.Forms.MessageBox.Show("Está tabela está vazia..."); } Clientes.Close();
16/03/2006
Djcacao
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());
fbDataAdapter.Fill(ds_usuario, ´DBF_USUARIO´);
para depois poder usar esse outro comando:
if (ds_usuario.Tables[´DBF_USUARIO´].Rows[linhaAtual][´senha´].ToString() == edt_senha.Text.ToString())
conferindo a senha...
Por isso preciso saber com verificar se um dataset esta vazio...
Se poder me ajudar...
16/03/2006
Massuda
if (ds_usuario.Tables["DBF_USUARIO"].Rows.Count > 0) { // tabela não está vazia } else { // tabela está vazia } ...
16/03/2006
Martins
if (ds_usuario.Tables["DBF_USUARIO"].Rows.Count > 0) { // tabela não está vazia } else { // tabela está vazia } ...
Prontinho o [b:944ef811b5]Massuda[/b:944ef811b5] já respondeu, já q vc quer apenas verificar, use a dica acima.
Valew [b:944ef811b5]Massuda[/b:944ef811b5]
16/03/2006
Emerson Nascimento
o que você está solicitando é incoerente. a senha já é passada como parâmetro para a instrução SQL, portanto, depois de abrir o dataset, não será necessário conferir a senha. a menos que você altere sua instrução para:
[i:2768fea959]fbComm_atual.CommandText = ´select * from dbf_usuario where (usuario = @p_usu)´;
fbComm_atual.Parameters.Clear();
fbComm_atual.Parameters.Add(´@p_usu´, edt_usuario.Text.ToString());
fbDataAdapter.Fill(ds_usuario, ´DBF_USUARIO´);[/i:2768fea959]
note que no exemplo acima a senha não será passada, tendo que ser conferida posteriormente (como você solicitou).
particularmente, prefiro a primeira opção:
você passa o usuário [b:2768fea959]E[/b:2768fea959] a senha e verifica se o dataset retornou algum registro. se sim, usuário Ok; se não, usuário ou senha inválidos (fica indefinido qual falhou: usuario ou senha).
- da forma que você quer fazer é mais fácil quebrar a segurança, visto que se eu acertar o usuário, só precisarei ficar tentando - via ´força bruta´ - a senha
- da outra forma é preciso encontrar a combinação usuário/senha, mas o sistema não informará qual está errado, gerando maior dificuldade na quebra.
17/03/2006
Djcacao
realmente martins, continuo passando usuario e senha, porem cai em um problema que não conseguia resolver... o problema era o seguinte:
esqueci de vincular o fbconn_atual com o dataset, com isso, o resultado nunca era somente o usuario e a senha.
Vinculei e acabou o problema...
Agora tenho um outro dilema...
quando eu coloco um usuario e senha que não atende o select, ai invés do sistema informar que usuário é inválido, o sistema informa que não foi possivel conectar ao banco, a instrução de senha esta dentro de try...catch
Alguem sabe me ajudar ?
Um outro caso é que quero pegar o usuario digitado e informar no form de menu principal, que é o proximo a ser aberto....
então fiz uma classe assim:
public class conexao
{
string VSusuario;
public void seta_usuario(string nome)
{
VSusuario = nome;
}
public string pega_usuario()
{
return VSusuario.ToString();
}
}
porem quando faço o comando para associar o return a um item do statusbar, aparece um erro dizendo que não foi possivel conectar ao banco de dados.
Agradeço desde já...
Clique aqui para fazer login e interagir na Comunidade :)