está bien declarado ya que no me diste completo tu código, lo que estoy viendo es que en tu funcion de sql devuelves una lista de datos, y en lo que haces en el VB es ejecutarlo como ExecuteNonQuery(Que solo sirve para hacer insert,update o modify) ya que esto no devuelve nada, solo 1 o -1 para ver si se realizó o no. para retonar una lista es con ExecuteDataSet, averigua mas ese tema xq me temo que te estas confundiendo. Saludos!

.