La classe SqlParameter è utilizzata normalmente per la definizione dei valori associati ai parametri delle stored procedure di SQL Server.
In realtà la si può utilizzare anche per prevenire attacchi di tipo SQL-injection (ovvero, codice SQL inserito tramite vari strateggi ed eseguito dalla nostra pagina), anche in presenza di normali query, come quella di questo esempio.
<script runat="server" language="C#"> void SubmitClick(object sender, EventArgs e) { // connessione SqlConnection conn = new SqlConnection(strconn); // oggetto command string strSQL = "INSERT INTO Tabella (colonna, colonna2) VALUES (@colonna1, @colonna2)"; SqlCommand cmd = new SqlCommand(strSQL, conn); // parametri SqlParameter parameter1 = new SqlParameter("@colonna1", SqlDbType.NVarChar, 250); parameter1.Value = Server.HtmlEncode(colonna1.Text); cmd.Parameters.Add(parameter1); SqlParameter parameter2 = new SqlParameter("@colonna2", SqlDbType.NVarChar, 250); parameter2.Value = Server.HtmlEncode(colonna2.Text); cmd.Parameters.Add(parameter2); // connessione ed esecuzione query conn.Open(); cmd.ExecuteNonQuery(); conn.Close(); } </script>
Il codice è ovviamente funzionante con Access, a patto di utilizzare le classi contenute nel namespace System.Data.OleDb, anzichè System.Data.SqlClient.
In linea di massima basta cambiare il prefisso Sql negli oggetti Connection, Parameter e Command con OleDb perchè tutto funzioni alla stessa maniera.
Commenti
Per inserire un commento, devi avere un account.
Fai il login e torna a questa pagina, oppure registrati alla nostra community.
Approfondimenti
Load test di ASP.NET Core con k6
Cache policy su route groups di Minimal API in ASP.NET Core 7
Implementare il throttling in ASP.NET Core
Usare ASP.NET Core dev tunnels per testare le applicazioni su internet
Effettuare il deploy di immagini solo da container registry approvati in Kubernetes
Personalizzare l'errore del rate limiting middleware in ASP.NET Core
Short-circuiting della Pipeline in ASP.NET Core