C # Datetimepicker -Date поиск не совпадает с возвращаемым результатом - PullRequest
0 голосов
/ 21 сентября 2011

У меня проблема с моим отдельным приложением C # .net, когда дело доходит до datetimepicker. Это заняло у меня несколько недель, и я не смог ее решить. Я надеюсь, что вы можете помочь мне.

У меня есть [создать бронирование], [Поиск бронирования] и [DB], используя доступ ms.

1) Создайте дату бронирования, используя datetimepicker. формат = короткий cmd.CommandText = "insert into booking(cname, bdate, btime, ccontact, sname) Values('" + txt_cname.Text + "','" + **dtp_bdate.Value.Date** + "','" + dtp_btime.Value + "','" + txt_ccontact.Text + "','" + txt_sname.Text + "')";

2) Хранилище данных в БД правильное. Пример: 01.10.2011 (1 октября 2011 г.)

3) Поиск даты бронирования, используя datetimepicker. формат = короткий

string strSql = String.Format("SELECT * FROM booking WHERE bdate = #{0}#", dtp_search.Value.Date);

Когда я пытаюсь выполнить поиск, как в 01.10.2011. Это не возвращает результат для меня. Но когда я пытаюсь выполнить поиск, как в 01.10.2011, то появляется результат.

Я проверил в БД и подтвердил, что формат даты сохранен как 01/10/2011. Но я не понимаю, почему и как происходит эта странная вещь.

Может ли какой-нибудь добрый человек помочь мне?

Заранее благодарен.

Спасибо, Гари Йи

Ответы [ 2 ]

0 голосов
/ 22 сентября 2011

«ЕСЛИ» ваши данные верны, попробуйте вместо этого использовать параметры:

  DataTable dt = new DataTable();

  using (var cn = new OleDbConnection(strConn))
  {
    cn.Open();
    using (var cmd = new OleDbCommand("SELECT * FROM booking WHERE bdate = @bdate", cn))
    {
      cmd.Parameters.AddWithValue("@bdate", dtp_bdate.Value.Date);
      using (OleDbDataAdapter oda = new OleDbDataAdapter(cmd))
        oda.Fill(dt);
    }
  }

В противном случае попробуйте отладить ваш оператор, попытавшись> = или <=, чтобы ваш оператор «WHERE bdate = @bdate» увиделесли это изменит результаты. </p>

0 голосов
/ 21 сентября 2011

Похоже, что Access допускает фиксированный формат даты в запросах sql (MM / DD / YYYY).И дата отображается в формате, соответствующем текущей культуре браузера базы данных (поэтому вы получаете ДД / ММ / ГГГГ).Просто используйте (ММ / ДД / ГГГГ) в запросах.

...