Home Page
Articoli
Tips & Tricks
News
Forum
Archivio Forum
Blogs
Sondaggi
Rss
Video
Utenti
Chi Siamo
Contattaci
Username:
Password:
Login
Registrati ora!
Recupera Password
Home Page
Stanze Forum
SQL Server 2000/2005/2008, Express, Access, MySQL, Oracle
Maledetto Where [:x]
martedì 29 luglio 2008 - 16.17
Elenco Threads
Stanze Forum
Aggiungi ai Preferiti
Cerca nel forum
ilgrongo
Profilo
| Newbie
9
messaggi | Data Invio:
mar 29 lug 2008 - 16:17
Salve a tutti
E' da un po' di giorni che sto impazzendo con questa stupida query e non ne riesco a venire a capo e spero tanto in un vostro aiuto.
Praticamente al login, la funzione deve verificare se l'utente esiste nella tabella degli utenti.
Quello che succede che non ho ancora capito come passare al mysqlcommand il valore del textbox che riceve la userid.
Praticamente,dopo aver controllato la validità dei dati inseriti, setto la variabile sql con la query da eseguire, ma a causa dell'opzione WHERE
la ricerca mi fallisce.
In pratica setto la variabile ab=me.UsernameTb.Text
quindi sql = New MySqlCommand("SELECT * FROM utenti where utuserid like '$ab$'", con)
successivamente eseguendo le istruzioni
con.Open()
myData = sql.ExecuteReader
If Not myData.HasRows Then
non trova righe e la ricerca mi fallisce anche se avevo inserito un valore presente nella tabella.
MI dite per cortesia dove ho sbagliato e come si fa per passare una variabile alla stringa di ricerca?
Grazie infinite
Public Class FormLogin
Dim con As MySqlConnection = New MySqlConnection("Data Source=localhost;Database=beautypassion;User ID=root;Password=antonio;")
Dim sql As MySqlCommand
Dim myData As MySqlDataReader
Dim ab As String
Private Sub OK_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles OK.Click
Dim check As Boolean
ab = me.UsernameTb.Text
check = True
sql = New MySqlCommand("SELECT * FROM utenti where utuserid like '$ab$'", con)
If ab = "" Then
MsgBox("Campo utente obbligatorio")
check = False
End If
If PasswordTb.Text = "" And check = True Then
MsgBox("Campo password obbligatorio", MsgBoxStyle.ApplicationModal)
check = False
End If
If check = True Then
con.Open()
myData = sql.ExecuteReader
If Not myData.HasRows Then
MsgBox("Non Trovato")
Else
MsgBox("Trovato")
Me.Close()
End If
End If
End Sub
allforum
Profilo
| Junior Member
65
messaggi | Data Invio:
mar 29 lug 2008 - 19:01
Forse dico una stupidaggine, ma non bisogna usare % invece di $ ?
ilgrongo
Profilo
| Newbie
9
messaggi | Data Invio:
mar 29 lug 2008 - 22:28
Grazie per l'aiuto ma purtroppo non funziona
Se provo con..... sql = New MySqlCommand("SELECT * FROM utenti where utuserid like '%ab'", con)
mi restituisce "non trovato"
Se provo invece con........ sql = New MySqlCommand("SELECT * FROM utenti where utuserid like 'antonio'", con)
ossia la string di un utente della tabella mi restituisce "trovato"
RISOLTO !!!!
sql = New MySqlCommand("SELECT * FROM utenti where utuserid = '" & UsernameTb.Text & "'", con)
alx_81
Profilo
| Guru
8.814
messaggi | Data Invio:
mer 30 lug 2008 - 11:56
>RISOLTO !!!!
>sql = New MySqlCommand("SELECT * FROM utenti where utuserid =
>'" & UsernameTb.Text & "'", con)
@ilgrongo
Evita la concatenazione.. solito problema di SQL Injection..
leggiti l'articolo scritto di recente da me e David:
http://www.dotnethell.it/articles/SQL-Injection-Tutorial-Security.aspx
non dimenticarti mai di proteggerti!
--
Alessandro Alpi | SQL Server MVP
http://www.alessandroalpi.net
http://blogs.dotnethell.it/suxstellino
http://mvp.support.microsoft.com/profile/Alessandro.Alpi
http://italy.mvps.org
Torna su
Stanze Forum
Elenco Threads
Partecipa anche tu! Registrati!
Hai bisogno di aiuto ?
Perchè non ti registri subito?
Dopo esserti registrato potrai chiedere
aiuto sul nostro
Forum
oppure aiutare gli altri
Consulta le
Stanze
disponibili.
Registrati ora !