AAAAAAARGHHHAAGRHRG!!!!!
NON SI FAAAAAAA!!!!!!
Giuro che se metti questa linea di codice ne tuo sito ti trovo e te lo sfondo di SQL Injection!!!!!
Non si concatenano MAI!!!!!! le stringhe che arrivano dalle caselle di testo alle query.
Si crea una procedura con dei parametri, e si valorizzano quelli.
La procedura, a seconda del DBMS usato , può essere implementata e salvata sul server o lanciata al volo.
Ad esempio il codice per creare al volo una procedura per una query come la tua sarebbe
codice:
Dim C As New Data.SqlClient.SqlConnection(ConnectionString)
Dim cmd As New Data.SqlClient.SqlCommand("select username from utenti where username=@User and password=@password", C.SqlConnection)
cmd.Parameters.Add(New Data.SqlClient.SqlParameter("@User", Data.SqlDbType.NVarChar)).Value = txtUser.Text
cmd.Parameters.Add(New Data.SqlClient.SqlParameter("@password", Data.SqlDbType.NVarChar)).Value = txtPassword.Text
Dim adpt As New Data.SqlClient.SqlDataAdapter(cmd)
Dim dt As New Data.DataTable
adpt.Fill(dt)
Questo scongiura la possibilità di iniettare codice SQL ( e fare danni IMMENSI ) tramite le tue caselle di testo ( e diciamo che nel mondo del lavoro informatico ti evita un licenziamento in tronco ), inoltre si occupa lui di tutto l'eventuale input "illecito" ( apici, parole riservate, etc )