Присваивая NULL дате и времени
if(TextBoxDate.Text=="")
{
dt=null;
}
ваш оператор преобразования не удастся
System.Convert.ToDateTime(dt)
Я не уверен, но я думаю, что используется значение по умолчанию для datetime ("0001/01/01"), следовательно, запрос не будет выполнен, поскольку эта дата не попадает между
1/1/1753 12:00:00 AM och 12/31/9999
Я предлагаю вам назначить минимальную дату для "dt", если дата не введена из пользовательского интерфейса
if(TextBoxDate.Text=="")
{
dt= new DateTime(1753,01,01);
}
[EDIT]
Все, что вам нужно сделать, это удалить избыточный оператор Convert при вызове сохраненного
Процедура
GridView1.DataSource = p.SearchPostit(TextBoxMessage.Text,
TextBoxWriter.Text, TextBoxMailto.Text, dt);
это избыточно, поскольку вы уже объявили dt как DateTime?
.