этот ответ просто для mysql 5.7:
лучше всего не установлен в пустое sql_mode, вместо этого использует в php переменную сеанса с:
SET SESSION sql_mode= 'ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION'
, так что по крайней мере вы сохраняете другие значения по умолчанию
Сумасшедшая, что документация mysql не ясна, вам нужно удалить эти значения defeault в sql_mode:
NO_ZERO_IN_DATE, NO_ZERO_DATE, я понимаю, но в будущих версиях это будет прекращено.
STRICT_ALL_TABLES, с этим, прежде чем параметры будут проигнорированы, так что вам тоже нужно удалить его.
наконец TRADITIONAL тоже, но документация говорит об этом параметре: «дайте вместо предупреждения «при вводе некорректного значения в столбец» с этим параметром даты с нулевыми значениями не вставляются, но без да
mysql на самом деле не организован с этими параметрами и комбинациями.
Следующий код будет работать независимо от типа элемента с привязкой к данным и свойства отображаемого элемента:
var isValid = cmbo.Items.Cast<Object>().Any(x=>cmbo.GetItemText(x) == ddPerson.Text);
Попробуйте это:
if (cmbo.Items.OfType<DataRowView>().Any(x => x["Person"]?.ToString() == ddPerson.Text))