Validação de Dados

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

 
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:
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
 
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!!!
 
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
 
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á

 
Back
Topo