我正在开发一个具有不同文本框的应用程序,我使用ASP.NET(c#)传递给oracle存储过程。对于每个文本框,类文件中都有一个属性。当我传递空文本框时,它会抛出一个错误。这是因为oracle中的varchar2字段不接受“null”。
Private string _fristName;
public string FirstName
{
get { return _fristName; }
set { _fristName= value; }
}
将_fristName设为string.empty或“”?
是最佳做法答案 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);