我的程序在其它机子上运行都正常,但一放上服务器就不稳定,就给我提示未给存储过程传递参数,但有的时候又没有错误,
大家有没有遇到过这种情况的呀,帮帮忙呀

解决方案 »

  1.   

    如果参数的值是null而不是DBNull.Value时也会报这个错,楼主看一下是不是这个值是null呢?
      

  2.   

    楼主是不是用的参数的构造函数不合适,我的意思是像下面的代码就有问题:
    object abc=somevalue;
    SqlParameter pars = new SqlParameter("@abc", abc);
    这里用的参数的构造函数是有两个参数值的,和这个构造函数相匹配的是如下两个:
    public SqlParameter(string parameterName, object value);//这个是楼主想要实现的
    public SqlParameter(string parameterName, SqlDbType dbType);//这个不是楼主想要实现的
    这时如查somevalue是一个整数,比如1,或2,或3等等,编译器可能会误认为是用的第二个构造函数,这样一来第二个可是没有参数值的,可是如果somevalue是大于29的,可能就不会有问题,因为SqlDbType 的值是从0到29,大于29的数不被当成SqlDbType,而被当成一个值当成了参数的值.