Beh.. sicuramente potresti evitare di leggere sempre tutti gli utenti del db e poi verificare se esiste o meno quello che cerchi...

Una Select del genere:

"SELECT * FROM utenti WHERE userid='" + usid + "' AND password='" + pass + "'"

(non so se si usano i + anche in VB.NET oppure ci vogliono le &)

In questo modo, se il recordset risultante contiene un record vuol dire che user&pwd sono corrette, altrimenti no.

In questo modo quindi ottimizzi le risorse di sistema evitando richieste inutili al db.

Una cosa: prima di eseguire questa query è molto importante che le due variabili usid e pass vengano modificate in modo che gli apici singoli diventino 2 anziché uno (se presenti):

usid = replace(usid, "'", "''")
pass = replace(pass, "'", "''")

Questo è un problema conosciuto da parecchio tempo.. attenzione quindi!