MySql e Parameter

mercoledì 29 dicembre 2004 - 22.50

s_dimaio Profilo | Junior Member

Non riesco ad usare i Parameter con MySql:


cmdSelect = New MySqlCommand( "SELECT * FROM users WHERE uname=@user AND upassword=@psw, conMyData )

cmdSelect.Parameters.Add("@user", MySqlDbType.String, ParameterDirection.Input, strUsername)
cmdSelect.Parameters.Add("@psw", MySqlDbType.String, ParameterDirection.Input, strPassword)


ma il parametro viene ignorato. Uso il DataProvider Connector/Net e MySql 4.1.

Qualche suggerimento?

Ciao e grazie

freeteo Profilo | Guru

ciao,
io ho usato i parametri su myqsl e non ho mai avuto problemi, ma sinceramente non ho mai specificato la direction :-( ... cmq non è che possa essere il nome del parametro "user"a dare fastidio, hai provato a cambiarlo?

ed hai provato a specificare i valori all'oggeto di tipo MysqlParameter, invece di metterlo nel costruttore?
cmq non ho capito bene cosa vuol dire ignorato?

ciao

s_dimaio Profilo | Junior Member

Con ignorato intendevo dire che la SQL non mi restituisce alcun valore a prescindere dai parametri che passo. In altre parole anche inserendo username e psw corretti non mi faceva entrare.

Io ho risolto sostituendo i "@" con "?" in questa maniera:

cmdSelect = New MySqlCommand( "SELECT * FROM users WHERE uname=?user AND upassword=?psw", conMyData )

Grazie

freeteo Profilo | Guru

ciao,
sto lavorando ankio in questi giorni con questo provider .net e devo confermare i tuoi problemi, e se guardi il codice sorgente c'e' 1 flag "useoldsyntax" che commentato dice proprio che nelle prossime versioni non si potra' piu' avere parametri con la "@" non so dirti perche...

ecco perche' come giustamente mostravi tu devi cambiare i nomi dei parametri, solo che per sql e mdb i parametri vanno con la "@" percui questo rompe 1po le scatole...

devo ancora capire il perche' di questa scelta :-(

ciao

framur Profilo | Newbie

Posso chiederti una cosa?ma con mysql connector, non bisogna utilizzare il metodo prepare del command prima di dare i parametri?

Ho appena iniziato a lavorare con questo provider..... non sono molto pratico.

Grazie

s_dimaio Profilo | Junior Member

Fai semplicemente così:

cmdSelect = New MySqlCommand( "SELECT * FROM users WHERE uname=?user AND upassword=?psw, conMyData )

cmdSelect.Parameters.Add("?user", MySqlDbType.String, ParameterDirection.Input, strUsername)
cmdSelect.Parameters.Add("?psw", MySqlDbType.String, ParameterDirection.Input, strPassword)

L'importante è non usare la chiocciola (@) come si fa in SQLServer.


Ciao

sistemi Profilo | Newbie

scusate ma dove trovo la libreria da includere nel mio progetto per usare mysqldbtype? grazie

freeteo Profilo | Guru

ciao,
trovi tutto quello che ti serve in mysql.com, dove il link della libreria di accesso per .net è qui:
http://dev.mysql.com/downloads/connector/net/1.0.html

ciao
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 !
Copyright © dotNetHell.it 2002-2023
Running on Windows Server 2008 R2 Standard, SQL Server 2012 & ASP.NET 3.5