Ir para o conteúdo
  • Revista PROGRAMAR: Já está disponível a edição #60 da revista programar. Faz já o download aqui!

fed07

[Resolvido] Base de Dados ExecuteScalar

Mensagens Recomendadas

fed07

Boas pessoal, é assim eu estou a tentar trabalhar com base de dados no vb.net e está tudo a funcionar bem com o seguinte código:

Public Class Form1
    Public conn As New OleDbConnection("Provider=Microsoft.ACE.OLEDB.12.0;Data Source = bd2.mdb;Persist Security Info=False;")
    Dim strSQL As String = "Select * from utilizadores"
    Public cmd As New OleDbCommand(strSQL, conn)

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Dim valor As Object
        conn.Open()
        valor = cmd.ExecuteScalar
        MessageBox.Show(valor)
        conn.Close()
    End Sub
End Class

Só que o executescalar só me está a devolver o valor da linha 1 coluna 1 da tabela utilizadores.

A minha tabela é composta por 4 campos/colunas: ID, Nome, Pass, Mail.

Eu preciso que ele receba todos os nomes e passwords da tabela.

O objectivo é ao receber os dados da tabela ele poder fazer comparação com os dados inseridos no form para fazer login ao utilizador!

Alguma ideia de como por o executescalar a receber os dados todos da coluna Nome e Pass?

se me poderem ajudar, obrigado!

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
jpaulino

O teu problema não é o ExecuteScalar() mas sim o comando T-SQL. Tu devias utilizar algo como "Select count(ID) from utilizadores WHERE nome=? AND password=?"

E depois defines os parameters.

Assim, caso tenhas resultados, o login/password é válido, caso não tenhas, o login/password é inválido.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
pmaster

Se queres que retorne todos os valores da tua tabela deixo um exemplo que te podes seguir.

       
            Dim myCommand = New OleDBCommand(Query, Coneccao)
            dr = myCommand.ExecuteReader
            While dr.Read()
                    MessageBox.Show(dr("nome").ToString() & " " & dr("password").ToString())
            End While
           dr.Close()
        

E se só precisas do nome e da password então na tua query chama só o que precisas.

Como por exemplo:

 Select nome, password from utilizadores 

Espero ter ajudado.

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites
fed07

Obrigado pessoal, muito útil a vossa ajuda.

Depois de uns minutos à volta do teu código pmaster lá conseguir por isto a trabalhar como queria. :D

Partilhar esta mensagem


Ligação para a mensagem
Partilhar noutros sites

Crie uma conta ou ligue-se para comentar

Só membros podem comentar

Criar nova conta

Registe para ter uma conta na nossa comunidade. É fácil!

Registar nova conta

Entra

Já tem conta? Inicie sessão aqui.

Entrar Agora

×

Aviso Sobre Cookies

Ao usar este site você aceita os nossos Termos de Uso e Política de Privacidade. Este site usa cookies para disponibilizar funcionalidades personalizadas. Para mais informações visite esta página.