c # Выберите данные базы данных sql, используя набор datetimepicker с диапазоном дат

Я пытаюсь сделать программу c #, где мне нужно сделать отчет базы данных для предварительного просмотра в datagridview. Данные будут выбраны с помощью пустот FilterDBbtnClick ( объект отправителя , EventArgs е ) { MySqlConnection сопп = новый MySqlConnection (); conn = new MySqlConnection ( cs ); string data = "SELECT` Date`, `Process`,` Actual`, `Target` FROM` database` WHERE `Date` BETWEEN '" + this . fromDatePicker . Значение + «„И“» + это . toDatePicker . Значение + "'по дате` Desc' ; MySqlCommand cmd = новый MySqlCommand ( данные , conn ); cmd . Подключение . Открыть (); try { MySqlDataAdapter sda = новый MySqlDataAdapter (); sda . SelectCommand = cmd ; DataSet dt = новый DataSet (); sda . Заполнить ( dt ); BindingSource bsource = new BindingSource (); bsource . DataSource = dt ; mondeDataTable . DataSource = dt . Таблицы [ 0 ]; sda . Обновить ( dt ); } catch ( Exception ex ) { Консоль . WriteLine ( экс . Message ); } cmd . Подключение . Закрыть (); } timepicker. Я написал код, он работает, но тогда, если выбранная дата имеет разные месяцы. Нет записей

Select * from [Table] where StartDate between '06/13/2016' and '10/13/2016'

пожалуйста, помогите мне проверить мой код и рассказать мне, что может быть неправильным или отсутствует.

c#,mysql,datagridview,

0

Ответов: 3


0

Используйте профайлер для проверки запроса, который попадает в БД. Я подозреваю, что это проблема форматирования даты.

Возможно, этот вопрос может помочь вам в регистрации запросов, которые попадают в базу данных:


0

Надеюсь это поможет:

data variable

Вышеприведенный запрос извлекает записи между месяцами 06 и 10. Убедитесь, что строка в dateформате находится в указанном выше формате. Также тип столбца в базе данных date.

Проверьте и удалите специальные символы, если они есть.

Отметьте это как ответ, если найдете это полезным.


0

Попробуйте это для выбранного запроса. Я изменил одну из ваших переменных, потому что это неоднозначно для типа данных Date.

void FilterDBbtnClick(object sender, EventArgs e)
{
        MySqlConnection conn = new MySqlConnection();

        conn = new MySqlConnection(cs);


        //string data = "SELECT `Date`, `Process`, `Actual`, `Target` FROM `database` WHERE `Date` BETWEEN '"+this.fromDatePicker.Value+"' AND  '"+this.toDatePicker.Value+"' order by `Date` desc";

        //Changed query for getting data from DB according to the date 
        string data = "SELECT CreatedDate, Process, Actual, Target FROM database WHERE DATE_FORMAT(CreatedDate,'%Y-%m-%d') BETWEEN '"+this.fromDatePicker.Value.ToString("yyyy-MM-dd")+"' AND  '"+this.toDatePicker.Value.ToString("yyyy-MM-dd")+"' order by CreatedDate desc";


        MySqlCommand cmd = new MySqlCommand(data, conn);


        cmd.Connection.Open();

        try
        {

        MySqlDataAdapter sda = new MySqlDataAdapter();
        sda.SelectCommand = cmd;            
        DataSet dt = new DataSet();
        sda.Fill(dt);
        BindingSource bsource = new BindingSource();
        bsource.DataSource = dt;
        mondeDataTable.DataSource = dt.Tables[0];
        sda.Update(dt);

        }

        catch (Exception ex)
        {
            Console.WriteLine(ex.Message);
        }


        cmd.Connection.Close();
}
C #, MySQL, DataGridView,
Похожие вопросы