One of the possible problems is that you are getting full DateTime values from DateTimePicker components. In this case Time part of DateTime value can be significant.
Asuming that you are assigning values to variables for filtering purposes:
var startDate = datetimepicker1.Value;
var endDate = datetimepicker2.Value;
probably you will get values:
startDate = 3/19/2014 09:13:35
endDate = 3/20/2014 09:13:35
(according to time when DateTimePicker components where initialized
Time part can be different).
Solution is to extract only Date part and ignore Time part:
var startDate = datetimepicker1.Value.Date;
var endDate = datetimepicker2.Value.Date;
then you will get values like this:
startDate = 3/19/2014 00:00:00
endDate = 3/20/2014 00:00:00
Next step is to filter your data in proper way. For example when you are using EF and LINQ to get some data from DB try this:
var invoices = from inv in db.Invoices
where inv.InvoiceDate.Date >= startDate
&& inv.InvoiceDate.Date <= endDate
select x;
Now you should get all values in selected period.
[Update]
If you are using database (such as MS SQL Server) for storage purposes then you can choose
Date field type. It will automatically store only Date part. It's helpful when you don't need to store Time part.
Hope it helps you :)