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