ciao Marco,
lo script cambia leggermente perché vai ad usare le classi del namespace MySql.Data.MySqlClient. Per esempio, anziché aprire una OleDbConnection dovrai aprire una MySQLConnection.
L'altra differenza rispetto ad Access è nella stringa di connessione: anziché indicare il percorso ad un file .mdb dovrai invece fornire i parametri di collegamento al database che Aruba ti ha fornito.
MarcoBrasil ha scritto:
Non ho ancora capito cosa devo inserire del fiel WEB.CONFIG
Non è un obbligo, ma è una buona pratica quella di inserire le stringhe di connessione nel web.config.
Esse contengono pur sempre dati di configurazione che possono cambiare da provider a provider, e dunque si preferisce non cablarle nell'applicazione come nell'esempio che hai postato.
Fai così, nel web.config aggiungi questo elemento (se non già presente) all'interno di <configuration>:
<connectionStrings>
<add name="MiaStringaDiConnessione" connectionString="Server=nomeserver; Database=nomedatabase; Uid=nomeutente; Pwd=password;" providerName="MySql.Data.MySqlClient" />
</connectionStrings>
Ovviamente adegua i parametri Server, Database, Uid e Pwd con i valori che ti sono stati forniti.
Adesso vai nella pagina e scrivi del codice per accedere al database ed eseguire il comando. Prima però togli questo, perché non è un namespace ma una classe.
<%@ import namespace="MySql.data.MySqlclient.MySqlConnection" %>
Ecco il codice:
'prelevo la mia stringa di connessione dal web.config.
Dim connString = System.Web.Configuration.WebConfigurationManager.ConnectionStrings("MiaStringaDiConnessione").ConnectionString
'Creo una nuova MySqlConnection. Lo faccio in un blocco Using, così se dovessero
'verificarsi errori avrei comunque la sicurezza che la connessione sarà chiusa correttamente
Using conn As New MySqlConnection(connString)
'Creare il comando è molto facile con il metodo CreateCommand dell'oggetto connessione
'Ancora una volta adopero un blocco using. Lo faccio per ogni classe che implementi IDisposable
Using cmd = conn.CreateCommand()
'Testo del comando. Uso i parametri, è importante non esporsi alla SQL injection.
cmd.CommandText = "INSERT INTO archiviofoto (code, datainserimentofoto, codimm, foto1, minifoto)" & _
" VALUES (@code, @datainserimentofoto, @codimm, @foto1, @minifoto);"
'Valorizzo i parametri del comando
cmd.Parameters.AddWithValue("@code", Request.QueryString("use"))
cmd.Parameters.AddWithValue("@datainserimentofoto", text1)
cmd.Parameters.AddWithValue("@codimm", Request.QueryString("cod"))
cmd.Parameters.AddWithValue("@foto1", fileFld.FileName)
cmd.Parameters.AddWithValue("@minifoto", upload_thumb & fileFld.FileName)
'Apro la connessione ed eseguo il comando
conn.Open()
cmd.ExecuteNonQuery()
conn.Close()
End Using
End Using
MarcoBrasil ha scritto:
ho gia messo nella cartella PIN nella root i seguenti file:
MySql.Data.dll
MySql.Web.dll
MySql.Web.pdb
Per fare questo lavoro è sufficiente l'assembly MySql.Data.dll, ma se stai usando funzionalità di ASP.NET come Membership e Roles API allora sì, mettili tutti nella cartella che si chiama
bin, non
PIN.
Mi raccomando, fai particolare attenzione a non esporti alla SQL Injection anche in altri punti dell'applicazione. Un utente potrebbe causare seri danni al database o accedere senza autorizzazione ad aree riservate, se solo volesse.
Qui trovi spiegato il problema. Puoi risolverlo con i parametri che ho usato nell'esempio.
http://www.aspitalia.com/script/390/Prevenire-Attacchi-SQL-Injection.aspxhttp://www.aspitalia.com/script/522/Utilizzare-Classe-SqlParameter-Prevenire-Attacchi-Tipo-SQLinjection.aspxciao
Modificato da BrightSoul il 29 giugno 2013 10.18 -