Как передать пустые данные текстового поля в качестве параметра для хранимой процедуры в Oracle с помощью .NET - PullRequest
3 голосов
/ 08 августа 2011

Я занимаюсь разработкой приложения с разными текстовыми полями, которое я передаю хранимой процедуре Oracle с использованием ASP.NET (c #).Для каждого текстового поля есть свойство в файле класса.Когда я пропускаю пустое текстовое поле, выдается ошибкаЭто потому, что поле varchar2 в oracle не принимает значение «ноль».

      Private string _fristName;

      public string FirstName 
      {
           get { return _fristName; }
           set { _fristName= value; }
      }

Как лучше всего использовать _fristName как string.empty или ""?

Ответы [ 2 ]

5 голосов
/ 08 августа 2011

При инициализации вашего класса просто установите для вашей частной переменной значение по умолчанию String.Empty.

Private string _fristName = String.Empty;

Получение этого значения приведет к возврату пустой строки, а не нуля;установка его изменит значение на что угодно.

Вы также можете сделать это:

  Private string _fristName;

  public string FirstName 
  {
       get { return _fristName ?? String.Empty; }
       set { _fristName= value; }
  }

Надеюсь, это поможет!

РЕДАКТИРОВАТЬ: принял предложение от @Marc в комментариях,Изменено сравнение для использования оператора ??.Спасибо @Marc!

0 голосов
/ 08 августа 2011

Перед установкой значения параметра в хранимой процедуре проверьте на ноль. Это можно поставить в общую функцию. Обратите внимание, что это для сервера sql, но аналогичная функция может быть выполнена для Oracle. Кроме того, если столбец не может принимать значение NULL, тогда вместо DBNull.Value может быть использовано значение по умолчанию (String.Empty для строк и т. Д.).

IDbDataParameter parameter = new SqlParameter(ParameterName, DatabaseFieldType);

parameter.Value = (value== null ? DBNull.Value : value);
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...