Why are you converting textbox input to DateTime values:
DataSearch2 = Convert.ToDateTime(BOX_DesiredDelivery2.Text)
(Although you should use DateTime.TryParse instead, of Convert, as the later throws an exception and kills your app if the user makes a mistake, and the former lets you tell him gracefully instead)
And then you convert it back to a string again, and probably confuse SQL:
WhereQuery = WhereQuery & " AND TargetDate <= '" & DataSearch2 & "'"
And that's probably your problem - the default "convert DateTime to String" implementation generates a string that is dependant on your system settings, which may not be anything SQL understands.
Use a Parameterized query instead, and pass the DateTime value directly instead of converting it to a string at all.
Chances are your problem will go away at the same time...