如何使用.NET将空文本框数据作为参数传递给oracle中的存储过程

时间:2011-08-08 18:57:50

标签: c# oracle

我正在开发一个具有不同文本框的应用程序,我使用ASP.NET(c#)传递给oracle存储过程。对于每个文本框,类文件中都有一个属性。当我传递空文本框时,它会抛出一个错误。这是因为oracle中的varchar2字段不接受“null”。

      Private string _fristName;

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

将_fristName设为string.empty或“”?

是最佳做法

2 个答案:

答案 0 :(得分:5)

在您的课程初始化中,只需将您的私有变量设置为默认值String.Empty

Private string _fristName = String.Empty;

获取它将返回一个空字符串,而不是null;设置它会将值更改为任何值。

你也可以这样做:

  Private string _fristName;

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

希望这有帮助!

编辑:在评论中提出@Marc的建议。更改了比较以使用??运算符。谢谢@Marc!

答案 1 :(得分:0)

在存储过程中设置参数值之前,请检查是否为null。这可以放在一个共同的功能。请注意,这适用于sql server,但可以为Oracle执行类似的功能。此外,如果列不能为null,则可能使用默认值(字符串的String.Empty等)而不是DBNull.Value。

IDbDataParameter parameter = new SqlParameter(ParameterName, DatabaseFieldType);

parameter.Value = (value== null ? DBNull.Value : value);