Salve, ho un problema abbastanza serio che riguarda l'interrogazione di database tramite query SQL in ASP.NET (VB.NET). Il codice della query che mi procura l'errore è il seguente:
Il problema sorge nel momento in cui l'utente che effettua la query inserisce un apice nella casella di ricerca, ad esempio digitando il cognome DELL'AMICO. Tale apice interferisce con l'istruzione SQL, "sballando" la ricerca.codice:Dim mykeyword As String = txtKeyWord.Text Dim MySQL as string = "Select * from clienti WHERE cognome = '" & mykeyword & "' Order by id_cliente" Dim myConn As OleDbConnection = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0;" & "Data Source=" & server.mappath("clienti.mdb") & ";") Dim ds as DataSet=New DataSet() Dim Cmd as New OleDbDataAdapter(MySQL,MyConn) Cmd.Fill(ds,"clienti") myDataGrid.Datasource=ds.Tables("clienti").DefaultView myDataGrid.DataBind() MyConn.Close()
Suppongo che dovrei controllare il contenuto della TextBox prima di effettuare la query per accertarmi che non vi siano apici, ma purtroppo, oltre a non sapere come fare (programmo in ASP.NET da poco tempo), ritengo che sia assurdo impedire all'utente di utilizzare gli apostrofi, considerando quanto questi siano frequenti nella nostra lingua.
Qualcuno saprebbe aiutarmi a risolvere il problema?
Grazie in anticipo.

Rispondi quotando