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

本文关键字:参数传递 存储过程 oracle 数据 net 何使用 文本 | 更新日期: 2023-09-27 18:04:45

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

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

这是将_firstname作为字符串的最佳实践。

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

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

Private string _fristName = String.Empty;

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

你也可以这样做:

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

希望这对你有帮助!

编辑:接受了@Marc在评论中的建议。将比较更改为使用??操作符。谢谢@Marc !

在存储过程中设置参数的值之前,请检查是否为空。这可以放在一个公共函数中。注意,这是针对sql server的,但是对于Oracle也可以执行类似的功能。此外,如果列不能接受null,那么用DBNull代替。值,可能使用默认值(String。对于字符串等为空)。

IDbDataParameter parameter = new SqlParameter(ParameterName, DatabaseFieldType);
parameter.Value = (value== null ? DBNull.Value : value);