innanzitutto metterei la clausola where prima di order by.
per quanto riguarda i confronti tra date io uso la format per evitare che mi vengano scambiati mese e giorno automaticamente.


SelectCommand="SELECT top 5 [CampoDataOra] FROM [MiaTabella] WHERE format([CampoDataOra],""MM/dd/yyyy"") > '<%format(DataOdierna,"MM/dd/yyyy")%>' order by format([CampoDataOra],""MM/dd/yyyy"") desc"