1. Este site usa cookies. Ao continuar a usar este site está a concordar com o nosso uso de cookies. Saber Mais.

Validação de Dados

Discussão em 'Programação' iniciada por Chipy, 23 de Agosto de 2006. (Respostas: 13; Visualizações: 831)

  1. Chipy

    Chipy Power Member

    Oi pessoal,

    Preciso da vossa ajuda.

    Estou a fazer um programa em VB2005 com ligação a uma Database que está feita em SqlServer2005.

    No Form faço esta ligação

    conexao = New SqlConnection("Data Source= (Local) ;Database= Empresa;Trusted_Connection=True;")

    Depois tenho uma Table X onde guardo o Username e Password. Têm pelo meno 3 Users e Passwords diferentes

    Quando o programa arranca temos que meter numa TextBox o User e noutra TextBox a Password.
    A minha dúvida é como faço para programa ir ler à Table X os campos e validar a informação que pomos nessas TextBoxes.
    Se o programa encontrar algum User que seja igual aquele que pomos nas TextBoxes, ele entra para aplicação, senão dá uma Messagem de Erro...

    Algume me podia ajudar???
     
  2. dcmath

    dcmath Power Member

    O que tens que fazer é um query à BD. É algo do género:

    "select * from Table X where User=txtBoxUser and Password=txtBoxPassword"

    Para isso usa as seguintes linhas de código:

    Dim myConnection As SqlConnection
    Dim myCommand As SqlCommand
    Dim dr As New SqlDataReader()

    myConnection = New SqlConnection("Data Source= (Local) ;Database= Empresa;Trusted_Connection=True;")
    myConnection.Open()

    myCommand = New SqlCommand("select * from Table X where User=txtBoxUser and Password=txtBoxPassword", myConnection );

    dr = myCommand.ExecuteReader()

    if dr.Count() == 1
    // encontrou o user
    else
    //não encontrou o user

    Espero ter ajudado...
     
  3. Chipy

    Chipy Power Member

    dcmath, quando declaro Dim dr As New SqlDataReader()

    Dá-me o seguinte erro:

    Error 2 Type 'System.Data.SqlClient.SqlDataReader' has no constructors.


    Sabes o que isto significa???
     
  4. dcmath

    dcmath Power Member

    Retira os ()... Coloca só Dim dr as New SqlDataReader
     
  5. Chipy

    Chipy Power Member

    Tive de declarar assim:

    Dim dr As SqlClient.SqlDataReader()

    Mas o dr não está a receber o valor da query

    Quando faço:

    dr = myCommand.ExecuteReader()

    O dr não consegue ler.....E a query está bem feita

     
  6. dcmath

    dcmath Power Member

    Não consegue ler como? Dá alguma excepção?
     
  7. Chipy

    Chipy Power Member

    O programa não faz nada, então resolvi meter um breakpoint a seguir à linha
    dr = myCommand.ExecuteReader()
    e aparece:

    dr= Nothing

    É por isso que eu digo que não está ler

    Outra coisa...

    Se eu colocar

    if dr.Read() == 1

    dá erro no ==

    Exprimentei colocar

    if dr.Count() = 1

    Será que têm a ver com isto????
     
    Última edição: 23 de Agosto de 2006
  8. dcmath

    dcmath Power Member

    pois... os == têm a haver com o facto de utilizar e trabalhar com C# :)

    Acho que não tem a haver com isso...

    Experimenta fazer a seguinte query e vê qual o resultado:

    select * from TableX
     
  9. Chipy

    Chipy Power Member

    Ok assim ele já vai parar à condição do

    if dr.Read() = 1
    // encontrou o user
    else
    //não encontrou o user

    Ou seja já está a ler

    Não percebo!!!
     
  10. dcmath

    dcmath Power Member

    Quer dizer que na bd não está nenhum par user-password igual aquele que estás a passar como filtros.
    Aconselho a mandar escrever esses valores num msgbox de forma a poderes tu comparar com o que está na bd
     
  11. Chipy

    Chipy Power Member

    Já consegui resolver o erro afinal estava na query:

    Eu tinha:

    cmd_entra.CommandText = ("Select * From LoginEntrada Where Username = " & Me.TextBox1.Text & " And PassWord=" & Me.TextBox2.Text & ";")

    e o correcto é:

    cmd_entra.CommandText = ("Select * From LoginEntrada Where Username = ' " & Me.TextBox1.Text & " ' And PassWord=' " & Me.TextBox2.Text & "' ;")

    A diferença é:

    Antes e depois das " & String & " tem que levar ' ', ou seja fica assim: ' " & String & " '

    Voilá

     
  12. dcmath

    dcmath Power Member

    Okeis... fixolas!
    Espero ter ajudado!
     
  13. Chipy

    Chipy Power Member

    Pois ajudaste, foste tu que deste a ideia da Query à Bd...
    Desculpa, não me lembrei de agradecer :)

    Obrigadão

    Yeah!!!
     

Partilhar esta Página