存储过程
ALTER procedure [dbo].[AddToDayResult]
@ICCode char(10) = null, 
@AtdDate char(8),
@TimeS int,
@TimeE int,
@TimeO int,
@Time1 int,
@Time2 int,
@MachineCode char(1)
as
BEGIN
  select a.ICCode, 
(select top 1 Date from [Lean].[dbo].[Atd_DataReceive] where ICCode=a.ICCode) as 'AtdDate',
(select top 1 Time from [Lean].[dbo].[Atd_DataReceive] where ICCode=a.ICCode and Time between 745 and 815) as 'TimeS',
(select top 1 Time from [Lean].[dbo].[Atd_DataReceive] where ICCode=a.ICCode and Time between 1710 and 1725) as 'TimeE',
(select top 1 Time from [Lean].[dbo].[Atd_DataReceive] where ICCode=a.ICCode and Time between 1915 and 1925) as 'TimeO',
(select top 1 Time from [Lean].[dbo].[Atd_DataReceive] where ICCode=a.ICCode and Time between 815 and 1210) as 'Time1',
(select top 1 Time from [Lean].[dbo].[Atd_DataReceive] where ICCode=a.ICCode and Time between 1300 and 1710) as 'Time2',
(select top 1 MachineCode from [Lean].[dbo].[Atd_DataReceive] where ICCode = a.ICCode) as 'MachineCode'
from (select ICCode from [Lean].[dbo].[Atd_DataReceive] group by ICCode) as a 
END
C#代码
  public List<DayResult> AddToDayResult(string iCCode)
        {            List<DayResult> dayResult = new List<DayResult>();            SqlParameter[] parms = new SqlParameter[]{
                new SqlParameter("@ICCode", SqlDbType.Char, 10),
                new SqlParameter("@AtdDate", SqlDbType.Char, 8),
                new SqlParameter("@TimeS", SqlDbType.Int),
                new SqlParameter("@TimeE", SqlDbType.Int),
                new SqlParameter("@TimeO", SqlDbType.Int),
                new SqlParameter("@Time1", SqlDbType.Int),
                new SqlParameter("@Time2", SqlDbType.Int),
                new SqlParameter("@MachineCode", SqlDbType.Char,1)
            };
            parms[0].Value = iCCode;
            using (SqlDataReader rdr = SQLHelper.ExecuteReaderStoredProcedure("AddToDayResult", parms))
            {
                while (rdr.Read())
                {
                    dayResult.Add(new DayResult
                    {
                        ICCode = rdr.GetString(0),
                        AtdDate = rdr.GetString(1),
                        TimeS = Convert.ToString(rdr.GetInt32(2)),
                        TimeE = Convert.ToString(rdr.GetInt32(3)),
                        TimeO = Convert.ToString(rdr.GetInt32(4)),
                        Time1 = Convert.ToString(rdr.GetInt32(5)),
                        Time2 = Convert.ToString(rdr.GetInt32(6)),
                        MachineCode = rdr.GetString(7)
                    });
                }
            }
            return dayResult;
        }
报错:过程或函数 'AddToDayResult' 需要参数 '@AtdDate',但未提供该参数
诚心求教

解决方案 »

  1.   

    没有给参数赋值parms[0].Value = iCCode;
    parms[1].Value = ...
    ...
      

  2.   

    去掉以后:过程或函数 'AddToDayResult' 需要参数 '@AtdDate',但未提供该参数。
      

  3.   

    去掉以后:过程或函数 'AddToDayResult' 需要参数 '@AtdDate',但未提供该参数
      

  4.   

    new SqlParameter("@AtdDate", SqlDbType.Char, 8),
    也就是 parms[1].Value 你给值了没? 可以在查询分析器,调试,打印出来。