ExecuteScalar
возвращает ноль, если по запросу не было возвращено ни одной записи (например, когда ваша хранимая процедура SearchForPassenger
не возвращает строк).
Итак, эта строка:
item = (int) command.ExecuteScalar();
Пытается привести null
к int
в этом случае. Это поднимет NullReferenceException
.
Согласно ответу Марка , который только что появился, вам нужно проверить на null
:
object o = command.ExecuteScalar();
item = o == null ? 0 : (int)o;