这个是一个向sqlcommand加sqlParameter[]的方法:如下private void AttachParameters(SqlCommand command, SqlParameter[] commandParameters)
    {
            foreach (SqlParameter p in commandParameters)
            {
                if ((p.Direction == ParameterDirection.InputOutput) && (p.Value == null))
                {
                    p.Value = DBNull.Value;
                }
                command.Parameters.Add(p);
            }
         }但是,谁能解释一下,下面的代码是什么意思?
 if ((p.Direction == ParameterDirection.InputOutput) && (p.Value == null))
                {
                    p.Value = DBNull.Value;
                }谢谢了,看不明白

解决方案 »

  1.   

    null是开发语言中支持的类型,而对应于数据字段就是DBNull.Value类型,不知对否??
      

  2.   

    if ((p.Direction == ParameterDirection.InputOutput) && (p.Value == null))
                    {
                        p.Value = DBNull.Value;
                    }
    这句的意思是,是输入输出参数,并且参数值不能为空,如果这两个条件都满足它的值就设值为DBNull.value
      

  3.   

    如果你要调用存储过程,里面有参数 @val nvarchar(20)="AABB" , 
    那么cmd.Parameters["@val"].Value=null 代表使用这个默认的 "AABB"
    而cmd.Parameters["@val"].Value=DBNull.Value 代表使用NULL来传给 @val
      

  4.   

    NULL是开发语言支持的,但是p.Direction == ParameterDirection.InputOutput你怎么解释呢?就是是输入或者输出函数吗?那不是废话吗?