при подключении к базе в методе подключения у тебя стоит utf8 ?
public MySQL(string connect1)
{
connect = connect1 + "charset=utf8;";
}
Посмотрел, стоит:
this.connectionString =
"SERVER=" + host +
";DATABASE=" + baze +
";UID=" + user +
// ";PASSWORD=" + pass +
";CHARSET=utf8;";
всё понятно, я нашел ошибку
у тебя идет сравнение числа и текста
когда ты сравниваешь STATUS (это текст) и "Русские буквы" это нормально
а когда ты сравниваешь Till_Day (это дата) и "Русские буквы" - это ошибка
когда ты сравниваешь Adults (это число) и "Русские буквы" - это тоже ошибка
Когда сравниваешь с числом ошибки не возникает, просто результат сравнения false - проверено.
Все из-за типа DateTime, но если его исключить, то по дате нельзя будет искать. В уроке ведь точно также все с числами и с датой работает
Уверен, что удастся разобраться с ошибкой.
Возможно при установке ты не настраивал кодировку, если так то
Открой конфиг mysql - my.ini И добавь [mysqld] character-set-server = utf8
Еще один совет - попробуй в поиске ввести, не так like '%Что-то для поиска%', а вот так like '%то-то для поиска%'
Без верхнего регистра + половина слова кароче. Так как ты используешь два процента, очень глупо искать слово целиком , естественно будет выходить ошибка. Попробуй и после напиши
Удачи
открыл, добавил, не помогло
чтобы тебе совсем не думать, скидываю код
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" +
"");
обращаю ЕЩЁ РАЗ твоё внимание на сравнение с ЧИСЛОВЫМИ полями, в них не добавляется знак %.
удачи!
Может % там и не нужен, но на ошибку это не влияет
Все-равно спасибо