日期:2014-05-19  浏览次数:20881 次

有鬼!真的有鬼!!!! 存储过程有鬼!ADO.NET有鬼!!!!抓鬼者赏金50 在线等
SQL2000存储过程有四个输出参数   正常测试得到四个参数得到正确结果分别是   8   7   6   9     在程序中调之后总是得到   8   7DBNULL   DBNULL
存储过程太长   不让往上贴  

正常输入测试条件   8       5       2007-5-1       2007-5-8   得到正确结果8     7     6     9
程序中调用     8       5       2007-5-1       2007-5-8   得到正确结果8     7     DBNULL     DBNULL
抛出异常   无法将DBNULL转换为其它值类型

SqlConnection   conn   =   null;
                SqlParameter   sp;
                SqlParameter   sprunum;
                SqlParameter   sprdnum;
                SqlParameter   sprlnum;
                SqlParameter   sprrnum;
                ArrayList   arr   =   new   ArrayList();
                int[]   returns   =   new   int[4];

               
                        this.objSqlCommand   =   new   SqlCommand();
                        this.objSqlCommand.CommandText   =   "proc_select_rollbook ";
                        this.objSqlCommand.CommandType   =   CommandType.StoredProcedure;
                        sp   =   new   SqlParameter();
                        sp.ParameterName   =   "@DAYS ";
                        sp.SqlDbType   =   SqlDbType.Int;
                        sp.Value   =   8;
                        this.objSqlCommand.Parameters.Add(sp);

                        sp   =   new   SqlParameter();
                        sp.ParameterName   =   "@LID ";
                        sp.SqlDbType   =   SqlDbType.Int;
                        sp.Value   =   5;
                        this.objSqlCommand.Parameters.Add(sp);

                        sp   =   new   SqlParameter();
                        sp.ParameterName   =   "@BTIME ";
                        sp.SqlDbType   =   SqlDbType.VarChar;