日期:2014-05-18  浏览次数:20964 次

c#调用存储过程,提供了参数老是提示“没有提供该参数”

我提供的某些参数为null

直接在数据库里面运行存储过程没有问题

 

vs调试时也是有参数的,只是有些参数值为 null 时有问题; 值不为null时,就没有问题。

 

 

后来,自己摸索、百度了几个小时没有找到解决方案

 

后来,我就从null和DBNull入手,在参数赋值前判断了一下,运行才没有问题,在参数赋给command时,要判断一下

解决方案:

            if (parameters != null)
            {
                foreach (SqlParameter parameter in parameters)
                {
                    if (parameter != null)
                    {
                        if (((parameter.Direction == ParameterDirection.InputOutput) || (parameter.Direction == ParameterDirection.Input)) && (parameter.Value == null))
                        {
                            parameter.Value = DBNull.Value;
                        }
                        command.Parameters.Add(parameter);
                    }
                }
            }


 

就是为空时,赋值: parameter.Value = DBNull.Value;

 

就样就解决了。。一个下午时间就这样过去了。。