JC Carmo Ответов: 1

Как отфильтровать записи, указав начальную и конечную даты?


Я разрабатываю C# .Сетевое приложение WindowsForm в Visual Studio 2015. Я пытаюсь фильтровать записи, указывая начальную и конечную даты из текстовых полей в форме, когда я нажимаю кнопку. Не могли бы вы взглянуть на мой код и сказать мне, что случилось? Я действительно ценю это. Большое спасибо!

Что я уже пробовал:

private void buttonFilter_Click(object sender, EventArgs e)
{
    try
    {
        if (string.IsNullOrEmpty(textBoxDataIni.Text) | string.IsNullOrEmpty(textBoxDataFin.Text))
        {
            qry_retornosBindingSource.Filter = string.Empty;
        }
        else
        {

            qry_retornosBindingSource.Filter = string.Format("data >= {0}%' & data <= '{1}%'", textBoxDataIni.Text, textBoxDataFin.Text);
            this.qry_retornosTableAdapter.Fill(this.dBpetControlDataSet.qry_retornos);
        }
    }
    catch (Exception)
    {
    }
}

phil.o

Вы храните даты и время в виде строк в своей базе данных?

1 Ответов

Рейтинг:
6

JC Carmo

Я решил эту проблему. Я должен был обратиться.ToDateTime текст текстового поля и исправить код для фильтрации записей. Смотрите правильный код ниже:


private void buttonFilter_Click(object sender, EventArgs e)
{
    try
    {
        if (string.IsNullOrEmpty(textBoxDataIni.Text) || string.IsNullOrEmpty(textBoxDataFin.Text))
        {
            this.qry_retornosBindingSource.Filter = string.Empty;
        }
        else
        {
            this.qry_retornosBindingSource.Filter = string.Format("Data >= '{0}' AND Data <= '{1}'", Convert.ToDateTime(textBoxDataIni.Text), Convert.ToDateTime(textBoxDataFin.Text));
        }
    }
    catch (Exception)
    {
    }
}