SQL Server Express ... Хранимая процедура «Нулевой параметр» ошибка - PullRequest
0 голосов
/ 10 января 2011

Использование Visual Studio 2010 Я собираю быстрое приложение .NET, которое должно записывать некоторые данные.Я использую встроенное средство SQL Server Express и создал Stored Proceedure для вставки данных.Я настроил таблицу базы данных, чтобы разрешить пустые значения для рассматриваемого поля, но я генерирую исключение времени выполнения "Процедура или функция 'XYZ' ожидает параметр '@ErrorCode', который не был предоставлен."Создание SqlParameters «простым способом»:

command.Parameters.Add(new SqlParameter("ErrorCode", state.ErrorCode));

Я также попытался создать их, задав дополнительные свойства:

SqlParameter errorCodeParam = new SqlParameter("ErrorCode", SqlDbType.Int);
errorCodeParam.IsNullable = true;
errorCodeParam.Value = state.ErrorCode;
command.Parameters.Add( errorCodeParam );

Моё свойство ErrorCode для объекта состояния простообнуляемый int .... "int?"с присвоенным значением «ноль».Поскольку столбец таблицы для этого поля предположительно допускает пустые значения, я немного запутался в том, почему он жалуется.

Мысли или идеи?Спасибо.

1 Ответ

1 голос
/ 10 января 2011

После некоторых дополнительных экспериментов я нашел ответ (думал, что передам его на случай, если кто-то столкнется с такой же ситуацией).Я использовал операторы, подобные следующему:

command.Parameters.Add(new SqlParameter("ErrorCode", (state.ErrorCode != null ? state.ErrorCode : null)));

В результате чего я проверяю значение обнуляемого типа int (int?), Чтобы узнать, имеет ли оно значение, а если нет, присваивает C # нуль для SqlParameter.... который хочет вместо DBNull.Value .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...