如何使用.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作为字符串的最佳实践。
在您的类初始化中,只需将您的私有变量设置为默认值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);