I don't have time to create a new project and test it for this circumstance. But I should be able to get you going without too much trouble.
What I do when I have trouble figuring out why my formula string in .NET isn't working is to create the formula in Crystal Reports and then look at it in the Formula Workshop (there is a button on the dialog box). So what you should do is first get this working in Crystal Reports perfectly. Then look at the formula and save it to Notepad or someplace. You've done this and showed it in your last post.
Then go into your .NET app and build the string to match the formula EXACTLY. I see that you have '#' around your dates, but this isn't what you'll see in the Crystal Reports formula. So don't put it in the .NET one. Every character should match identically in your .NET string when you override the formula property.
The problem I see with your code is that you said that you changed the ?startdate parameter. You shouldn't change anything. Make it identical to what Crystal Reports created on its own otherwise Crystal won't like it.
In this formula I use the DateValue() function to strip out the time portion.
DateValue({myTable.DateField}) IN {?startdate} to {?enddate}