我的存储过程写了的 ,而且名字检查没有错误 但老是找不到

解决方案 »

  1.   

    看看是不是存储过程的名字字母有误
    直接COPY过来试试
      

  2.   

    SqlCommand myCommand = new SqlCommand("reportdays",Conn);
    myCommand.CommandType = CommandType.StoredProcedure; SqlParameter wbn = new SqlParameter("@WBN", SqlDbType.VarChar);
    wbn.Value = WBN;
    myCommand.Parameters.Add(wbn); SqlParameter DT1 = new SqlParameter("@DT1", SqlDbType.DateTime);
    DT1.Value = dt1;
    myCommand.Parameters.Add(DT1); SqlParameter DT2 = new SqlParameter("@DT2", SqlDbType.DateTime);
    DT2.Value = dt2;
    myCommand.Parameters.Add(DT2); SqlParameter cnt = new SqlParameter("@CNT", SqlDbType.Int);
    cnt.Direction=ParameterDirection.Output;
    myCommand.Parameters.Add(cnt); myCommand.ExecuteNonQuery();
                int cnt1=(int)cnt.Value;  
    return cnt1; 存储过程
    CREATE PROCEDURE  ReportDays
    (
    @WBN  varchar,
    @DT1  Datetime,
    @DT2  Datetime,
    @CNT INTEGER OUT
    )
    AS
    select Distinct  @CNT=Count(ReportDate)  
    from DayReport where state<>0 and WasteBookNo=@WBN and ReportDate between @DT1 and  @DT2
    GO
      

  3.   

    在没有任何数据时进行无效的读取尝试。源错误: 
      string sql1="select Count(ReportDate) as cnt from DayReport where state<>0 and WasteBookNo='"+WBN+"' and ReportDate between '"+dt1+"' and '"+dt2+"'";
      SqlDataReader myReader=mydata1.executeQuery(sql1);
    int cnt=(int)myReader["cnt"];
     
      

  4.   

    你在查询分析器里用程序里的变量值去执行这个存储过程的时候有数据显示吗??另外你代码中的存储过程名是reportdays,而真正的存储过程名是ReportDays,没有区分大小写,当然会找不到存储过程了。
      

  5.   

    检查该sp的所有者属性是否为dbo或者其他的。
    程序访问时,使用全名访问:所有者.sp
    或许可以看到些问题。