Warning: file_get_contents(/data/phpspider/zhask/data//catemap/1/oracle/10.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何使用.NET将空文本框数据作为参数传递给oracle中的存储过程_C#_Oracle - Fatal编程技术网

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

C# 如何使用.NET将空文本框数据作为参数传递给oracle中的存储过程,c#,oracle,C#,Oracle,我正在开发一个带有不同文本框的应用程序,我正在使用ASP.NET(c#)将这些文本框传递给oracle存储过程。对于每个文本框,类文件中都有一个属性。当我传递空文本框时,它抛出了一个错误。这是因为oracle中的varchar2字段不接受“null” 将_fristName设置为string.empty或“”的最佳实践是什么?在类的初始化中,只需将私有变量设置为默认值string.empty Private string _fristName = String.Empty; 获取它将返回一个空

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


将_fristName设置为string.empty或“”的最佳实践是什么?

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

Private string _fristName = String.Empty;
获取它将返回一个空字符串,而不是null;设置它会将值更改为任意值

您也可以这样做:

  Private string _fristName;

  public string FirstName 
  {
       get { return _fristName ?? String.Empty; }
       set { _fristName= value; }
  }
希望这有帮助


编辑:在评论中采纳了@Marc的建议。将比较更改为使用
运算符。谢谢@Marc

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


最好使用
string.Empty
而不是
。在.NET2.0之后,它们完全相同。然而,就可读性而言,大多数程序员都认为
string.Empty
更容易阅读。或者更简洁地说
get{return\u firstName???”;}
噢,是的,我总是忘记
??
。谢谢
  Private string _fristName;

  public string FirstName 
  {
       get { return _fristName ?? String.Empty; }
       set { _fristName= value; }
  }
IDbDataParameter parameter = new SqlParameter(ParameterName, DatabaseFieldType);

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