• Revista PROGRAMAR: Já está disponível a edição #53 da revista programar. Faz já o download aqui!

vasco16

Como verificar se um certo registo ja existe?

6 mensagens neste tópico

Boas pessoal gostaria de saber como posso ver se um registo ja esta na BD..

Estou a usar Bd em access

e estou a usar este código para tentar validar..

    Dim verificar As String = "SELECT matricula FROM compras where matricula = " & matriculatext.Text & ""
                If (verificar = matriculatext.Text) Then
                    MsgBox("A matricula ja se encontra")
                    Exit Sub
                End If

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

nop...nem nada que se pareça

Tens que fazer um select count tipo: "select count(1) from tabela x where matricula = matricula de teste"

Depois tens que abrir a conexão à base de dados e enviar a instrução...e acima de tudo....interagir com a base de dados.

Podes usar o reader, mas deve usar-se preferencialmente o executescalar.

penso que existem no fórumi posts relativamente  a um e outro.

PS - quantas vezes é preciso dizer.. que para ler uma instrução de SQL da Base de dados...É MESMO PRECISO IR LER À BASE DE DADOS???

Já agora...recomendo a leitura:

http://blogs.x2line.com/al/archive/2007/05/01/3049.aspx

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

PS - quantas vezes é preciso dizer.. que para ler uma instrução de SQL da Base de dados...É MESMO PRECISO IR LER À BASE DE DADOS???

o código que postei nao é todo o que tenho, claro que tenho codigo para ir ler á BD..

obrigado, vou ler o que me mandas-te:)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Vê se ajuda  :confused:



fVerificarRegisto = 0 ' Não existe registo na tabela
fVerificarRegisto = 1 ' Existe registo na tabela
fVerificarRegisto = -1 ' Erro no SQL ou ....


   Public Function fVerificarRegisto(ByVal strParam As String) As integer

        Dim strSQL As String = "SELECT campo FROM tabela WHERE campo = " & strParam
        Dim DR As OleDbDataReader
        Dim Cnn As New OleDbConnection(fCnnString)
        Dim Cmd As New OleDbCommand(strSQL, Cnn)

        Try
            Cnn.Open()
            DR = Cmd.ExecuteReader
            If (DR.HasRows) Then
                fVerificarRegisto = 1
            Else
                fVerificarRegisto = 0
            End If

        Catch ex As Exception
            'MsgBox(ex.Message, MsgBoxStyle.Critical, My.Application.Info.Title)
            fVerificarRegisto = -1

        End Try

        Cnn.Close()
        Cnn = Nothing
        Cmd = Nothing

    End Function

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

Vê se ajuda  :confused:



fVerificarRegisto = 0 ' Não existe registo na tabela
fVerificarRegisto = 1 ' Existe registo na tabela
fVerificarRegisto = -1 ' Erro no SQL ou ....


   Public Function fVerificarRegisto(ByVal strParam As String) As integer

        Dim strSQL As String = "SELECT campo FROM tabela WHERE campo = " & strParam
        Dim DR As OleDbDataReader
        Dim Cnn As New OleDbConnection(fCnnString)
        Dim Cmd As New OleDbCommand(strSQL, Cnn)

        Try
            Cnn.Open()
            DR = Cmd.ExecuteReader
            If (DR.HasRows) Then
                fVerificarRegisto = 1
            Else
                fVerificarRegisto = 0
            End If

        Catch ex As Exception
            'MsgBox(ex.Message, MsgBoxStyle.Critical, My.Application.Info.Title)
            fVerificarRegisto = -1

        End Try

        Cnn.Close()
        Cnn = Nothing
        Cmd = Nothing

    End Function

vou testar, obrigado :)

0

Partilhar esta mensagem


Link para a mensagem
Partilhar noutros sites

    Dim verificar As String = "SELECT matricula FROM compras where matricula = " & matriculatext.Text & ""
                If (verificar = matriculatext.Text) Then
                    MsgBox("A matricula ja se encontra")
                    Exit Sub
                End If

Pareceu-me bem claro que estavas a testar se a tua variavel string era igual ao que tinhas na text box... mas se calhar foi mesmo só confusão minha.... :hmm:

Para o PauloR:

Parece-me que em termos de performance, o select count() é superior...muito embora, o modo como fizeste também funcione.

De qualquer modo, dar a resposta de caras, não me parece a melhor metodologia para ajudar alguém... é claro que isso deve ser entendido como uma opinião pessoal.

0

Partilhar esta mensagem


Link 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