2 maneras :
1) Con mas conexiones, recomendado para bases de datos grandes.
Dim DA As New SqlDataAdapter("SELECT * FROM tuTabla WHERE DNI='" & textBox1.Text & "'",TuConexion)
Dim DS As New DataSet
DA.Fill(DS,"nombredetabla")
If DS.Tables("nombredetabla").Rows.Count = 0
MsgBox("DNI no encontrado")
Else
'Lo q kieras
End If
Pros: Hace la busqueda el servidor, no el cliente, la busqueda es mas rapida.
Contras: Hay que hacer una conexion cada vez que busques un DNI nuevo
2) Con 1 sola conexion, recomendado para bases de datos pequeñas
Dim DA As New SqlDataAdapter("SELECT * FROM tuTabla ,TuConexion)
Dim DS As New DataSet
DA.Fill(DS,"nombredetabla")
DS.Tables("nombredetabla").PrimaryKey = New Datacolumn() { DS.Tables("nombredetabla").Columns("DNI") }
Dim RowDniBuscado As DataRow= DS.Tables("nombredetabla").Rows.Find(TextBox1.Text)
If RowDniBuscado Is Nothing
MsgBox("DNI no encontrado")
Else
'Lo q kieras
End If
Pros: Solo hay 1 conexion
Contras: Al solo haber 1 conexion, te devuelve TODAS las filas lo que con bases de datos grandes y en conexiones lentas se hace muy lento
Ea done