Código à prova de injeção
l Dim Cnx As New System.Data.SqlClient.SqlConnection("user id=sa;initial catalog=Northwind;password=")
l Cnx.Open()
l Try
l Dim CmdS As String = "select ProductID, ProductName, UnitPrice from products where ProductID = @ProductID"
l Dim Cmd As New System.Data.SqlClient.SqlCommand(CmdS, Cnx)
l Cmd.Parameters.Add("ProductID", System.Data.SqlDbType.Int)
l Cmd.Parameters("ProductID").Value = CInt(TextBox1.Text)
l Dim DR As System.Data.SqlClient.SqlDataReader = Cmd.ExecuteReader()
l ListBox1.Items.Clear()
l While (DR.Read())
l ListBox1.Items.Add(DR(0) & " - " & DR(1) & ": " & DR(2))
l End While
l Finally
l Cnx.Dispose()
l End Try

| Este é o código refeito sem o problema de injeção de comando SQL.
| Observe a criação e o uso de um parâmetro para passar valores à query.