Курсы по программированию

Формула программиста
основатель — Волосатов Евгений Витольдович

БД - Управление гостиницей / Модель. Список заказов.

  • На этом уроке мы допишем два последних метода в класс Book.
    Методы для получения списка заказов по фильтру и без.
    В конце урока выведем результаты в грид,
    чтобы убедиться, что код работает.
  • Дата отправки отчёта: 10 февраля
  • Задание выполнено: за 1 час. 13 мин.
  • Чему научился: закрепил знания
  • Что было сложным: Провозился с ошибкой, которая возникает при поиске по букингу кириллицей - "illegal mix of collations for operation like". В интернете советуют поменять кодировку и я все проверил. Изменил кодировку бд и нескольких таблиц на utf8_general_ci (там в самом деле какая-то другая стояла), пересоздал строки, но ошибка не исчезла (((
  • Комментарии: а в видео все нормально работает..
  • Оценка видео-уроку:
Отчёт от 3664 за БД - Управление гостиницей / Модель. Список заказов.


Отчёт от 3664 за БД - Управление гостиницей / Модель. Список заказов.




Оцени работу

 
Сохранить страницу:

3664. данила
данила
ответить

3664. данила
данила
ответить
→  Lik_Kirill  # БД - Управление гостиницей / Модель. Список заказов. / 2016-02-12 12:35

Может % там и не нужен, но на ошибку это не влияет


6452. Lik_Kirill
Lik_Kirill
ответить
→  данила  # БД - Управление гостиницей / Модель. Список заказов. / 2016-02-12 11:44

чтобы тебе совсем не думать, скидываю код
                book = this.sql.Select(
                    "select client_id, client, book_date, from_day, till_day," +
                            " adults, childs, status, b.info" +
                    " from book b" +
                    " left join client c on b.client_id=c.id" +
                    " where " +
                    "    client like '%" + f + "%'" +
                    " or book_date like '%" + f + "%'" +
                    " or from_day like '%" + f + "%'" +
                    " or till_day like '%" + f + "%'" +
                    " or adults like '" + f + "'" +
                    " or childs like '" + f + "'" +
                    " or status like '" + f + "'" +
                    " or b.info like '%" + f + "%'" +
                    " order by book_date" +
                    "");
обращаю ЕЩЁ РАЗ твоё внимание на сравнение с ЧИСЛОВЫМИ полями, в них не добавляется знак %.
удачи!


3664. данила
данила
ответить
→  Frank  # БД - Управление гостиницей / Модель. Список заказов. / 2016-02-11 13:12

открыл, добавил, не помогло


5565. Frank
Frank
ответить
→  данила  # БД - Управление гостиницей / Модель. Список заказов. / 2016-02-11 12:56

Еще один совет - попробуй в поиске ввести, не так like '%Что-то для поиска%', а вот так like '%то-то для поиска%'
Без верхнего регистра + половина слова кароче. Так как ты используешь два процента, очень глупо искать слово целиком , естественно будет выходить ошибка. Попробуй и после напиши
Удачи


5565. Frank
Frank
ответить
→  данила  # БД - Управление гостиницей / Модель. Список заказов. / 2016-02-11 12:44

Возможно при установке ты не настраивал кодировку, если так то
Открой конфиг mysql - my.ini И добавь [mysqld] character-set-server = utf8



2146. Иван
Иван
ответить
→  данила  # БД - Управление гостиницей / Модель. Список заказов. / 2016-02-10 20:55

Уверен, что удастся разобраться с ошибкой.


3664. данила
данила
ответить
→  Lik_Kirill  # БД - Управление гостиницей / Модель. Список заказов. / 2016-02-10 18:28

Когда сравниваешь с числом ошибки не возникает, просто результат сравнения false - проверено.
Все из-за типа DateTime, но если его исключить, то по дате нельзя будет искать. В уроке ведь точно также все с числами и с датой работает


6452. Lik_Kirill
Lik_Kirill
ответить
→  данила  # БД - Управление гостиницей / Модель. Список заказов. / 2016-02-10 17:19

всё понятно, я нашел ошибку
у тебя идет сравнение  числа и текста
когда ты сравниваешь STATUS (это текст) и "Русские буквы" это нормально
а когда ты сравниваешь Till_Day (это дата) и "Русские буквы" - это ошибка
когда ты сравниваешь Adults (это число) и "Русские буквы" - это тоже ошибка


3664. данила
данила
ответить
→  Lik_Kirill  # БД - Управление гостиницей / Модель. Список заказов. / 2016-02-10 13:39

Посмотрел, стоит:
  this.connectionString =
                "SERVER=" + host +
                ";DATABASE=" + baze +
                ";UID=" + user +
            // ";PASSWORD=" + pass +
                ";CHARSET=utf8;";


6452. Lik_Kirill
Lik_Kirill
ответить
→  данила  # БД - Управление гостиницей / Модель. Список заказов. / 2016-02-10 04:04

при подключении к базе в методе подключения у тебя стоит utf8 ?
        public MySQL(string connect1)
        {
            connect = connect1 + "charset=utf8;";
        }


  • Отчёт оценивали:
    4699Сергей Витальевич+1   1Евгений Витольдович+1   3664данила+1   4992Николай+1   7645Александр Львович+1   2639Морозов Юрий Александрович+1   8275Tekashnik+1   9223Димитрий Третьяков0   6925Артём+1   4395Денис+1   8886Михаил Ермишин+1   459Сергей Сергеевич+1   6195sergey+1   5760Мариша +1   4004Елена+1   7157muxasio+1   5649Максим Лапшинов+1   689Igorenzia+1   9160Сергій+1   2146Иван+1   Посетитель+1  

Начинаем практику по языку C#




Чтобы стать хорошим программистом — нужно писать программы. На нашем сайте очень много практических упражнений.

После заполнения формы ты будешь подписан на рассылку «C# Вебинары и Видеоуроки», у тебя появится доступ к видеоурокам и консольным задачам.

Несколько раз в неделю тебе будут приходить письма — приглашения на вебинары, информация об акциях и скидках, полезная информация по C#.

Ты в любой момент сможешь отписаться от рассылки.
Научился: Методы для получения списка заказов по фильтру и без
Трудности: ничего
Методы для получения списка заказов по фильтру и без
Научился: повторил
Трудности: не было
комментариев нет