codice:
direttamente dall'help del framework
Dim da As OleDbDataAdapter = New OleDbDataAdapter()
  Dim cmd As OleDbCommand

  ' Create the SelectCommand.

  cmd = New OleDbCommand("SELECT * FROM Customers " & _
                       "WHERE Country = @Country AND City = @City", conn)

  cmd.Parameters.Add("@Country", OleDbType.VarChar, 15)
  cmd.Parameters.Add("@City", OleDbType.VarChar, 15)

  da.SelectCommand = cmd
'e poi questo lo aggiungo io ..
da.Fill(dataset, "nome")
codice:
direttamente da una mia applicazione :biifu: 
o e i sono variabili prese da querystring..
c'è il problema di attakki vari, x cui faccio innanzitutto il replace di caratteri "sensibili" (l'apice, x es)
Dim MyAdapter As OleDbDataAdapter
	MyAdapter = new OleDbDataAdapter("SELECT * FROM Customers WHERE Country = '" & o & "' AND City ='" & i & "'" , MyConnection)	
	MyAdapter.Fill(dataset, "nome")
ora: i paramers sono molto + sicuri, in quanto (se non ho capito male) il testo viene preso come tale, cioè senza alcun valore x la query (cioè, x es, update non vienevisto come comando x modificare un valore ma come parola normale)

qual'è meglio? instanziare un nuovo command ed essere sicuri oppure farsi tutti i controlli a mano risparmiando un command?

grazie