Υποθέτω στην πρώτη περίπτωση είναι λάθος το format της ημερομηνίας. Ας πούμε ο server περιμένει mm/dd/yy και εσύ μέσω του picker δίνεις dd/mm/yy (πχ 28/11/2006 αντί για 11/28/2006, εξού και το out of range exception). Αυτό είναι ένα από τα προβλήματα όταν κατασκευάζεις το query με concatenation. Καλύτερα να χρησιμοποιήσεις parameters ώστε να μην χρειάζεται να ανησυχείς για το πως θα ορίσεις κοινό format στον client και στον server:
Dim sqlQuery As String = "delete from tbl where tbltest between @startDate and @endDate"
Dim sqlCmd As New SqlCommand(sqlQuery , sqlCon)
Dim startDateParameter as new SqlParameter("@startDate", Date1.Value)
Dim endDateParameter as new SqlParameter("@endDate", Date2.Value)
sqlCmd.Parameters.Add(startDateParameter)
sqlCmd.Parameters.Add(endDateParameter)
'execute the command
Μπορεί να έχουν λαθάκια τα παραπάνω, δεν έχω Studio μπροστά μου.
Vir prudens non contra ventum mingit