一段C#给oracle加参数的代码,红色文字ParameterDirection判断有什么作用??本帖最后由 yhd913339578 于 201
一段C#给oracle加参数的代码,红色文字ParameterDirection判断有什么作用??
本帖最后由 yhd913339578 于 2013-09-28 11:34:02 编辑 if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&
(parameter.Value == null))
{
parameter.Value = DBNull.Value;
}
有啥作用???
private static void AttachParameters(IDataParameter[] parameters, OracleCommand cmd)c# oracle parmeterdirection
{
if (parameters != null && parameters.Length > 0)
{
for(int index=0;index<parameters.Length;index++)
{
if (parameters[index] is OracleParameter)
{
if ((parameters[index].Direction == ParameterDirection.InputOutput || parameters[index].Direction == ParameterDirection.Input) &&
(parameters[index].Value == null))
{
parameters[index].Value = DBNull.Value;
}
cmd.Parameters.Add(parameters[index]);
}
else
{
OracleParameter parameter = new OracleParameter();
parameter.DbType = parameters[index].DbType;
parameter.Value = parameters[index].Value;
if ((parameter.Direction == ParameterDirection.InputOutput || parameter.Direction == ParameterDirection.Input) &&
(parameter.Value == null))
{
parameter.Value = DBNull.Value;
}
parameter.ParameterName = parameters[index].ParameterName;
cmd.Parameters.Add(parameter);
}
}
}
}
[解决办法]
好问题,如果弄清楚了null和DBNull.value的区别,就自然明白了。
null是一个无法引用的值,DBNull.value是一个可以引用,代表null的值。
http://stackoverflow.com/questions/4958379/what-is-the-difference-between-null-and-system-dbnull-value
