Из документации :
Чтобы соответствовать стандарту
SQL
,IN
возвращаетNULL
не только если выражение на левая сторона -NULL
, но также если совпадение не найдено в списке, а одно из выражений в списке -NULL
.
Это как раз ваш случай.
И IN
, и NOT IN
возвращают NULL
, что не является приемлемым условием для пункта WHERE
.
Перепишите ваш запрос следующим образом:
SELECT *
FROM match m
WHERE NOT EXISTS
(
SELECT 1
FROM email e
WHERE e.id = m.id
)
Вы можете использовать статическое свойство ModifierKeys в элементе управления, чтобы определить, удерживается ли клавиша Shift.
if (Control.ModifierKeys == Keys.Shift ) {
...
}
Это перечисление в стиле флага, поэтому, в зависимости от ситуации, вы можете захотеть провести более тщательное тестирование.
Также обратите внимание, что это будет проверять, удерживается ли клавиша Shift в момент проверки значения. Не тот момент, когда было инициировано открытие меню. Возможно, это несущественная разница для вашего приложения, но стоит отметить.
Используйте это, чтобы определить, нажата ли клавиша Shift:
if ((Control.ModifierKeys & Keys.Shift) == Keys.Shift)