I'm assuming you're using OleDb because you use an oracledbtype.int32 data type, so before you catch your general exceptions (Catch ex as exception) you should catch your OleDb exceptions:
Catch ex as System.Data.OleDb.OleDbException
Then you can test on ex.ErrorCode for the specific error (you have to do the leg work to find out the error number that is returned with a null recordset) and send your own message to the client:
If ex.ErrorCode = -20004 Then throw new ApplicationException("Username not found")
or the Oledb exception:
If ex.ErrorCode = -20004 Then throw new ApplicationException(ex.Message)
Now I generally write in C#, so my
VB might be a little rusty, but I know that if you let your general exception handler catch database exceptions, you will lose the error code and therefore be unable to send the correct message to the user.
Hope this helps!
Robin