我在VS的一个文件SQLHELP建了如下一个方法:public void executeSql(string sqlstr, SqlParameter[] param)
        {
            cmd = new SqlCommand(sqlstr, getCon());
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.AddRange(param);
            cmd.ExecuteNonQuery();
        } 
结果在页面中我调用(已经对SQLHELP初始化对象sqlhelp,并在以前的引用中上面的那个方法没有出错,也确定下面的存储过程也没错,因为人已经测试过无数遍)的时候出错,我的调用如下:SqlParameter[] param2 = new SqlParameter[] { 
            new SqlParameter ("@decatename","aaaaaaaa" ),
            new SqlParameter ("@cateid",3 )};
            sqlhelp.executeSql("addDetailCate", param2);
出现的提示是:过程或函数 'addDetailCate' 需要参数 '@cateDetailName',但未提供该参数。
不知道是什么原因,我找了半天,代码也重新写了N遍,我想是参数没有传进去,但就是不知道是什么原因,请高手指教。

解决方案 »

  1.   

    很明显你的存储过程的参数个数和你提供的不一致,@cateDetailName这个参数你在Parameter里也没创建啊
      

  2.   

    存储过程怎么写的?有@cateDetailName参数吗
      

  3.   

    那个存储过程代码如下:ALTER proc [dbo].[addDetailCate](@cateDetailName varchar(16),
    @cateId int
    )
    as
    insert into cateDetail (cateDetailName,cateId)
    values (@cateDetailName,@cateID)
      

  4.   

    SqlParameter[] param2 = new SqlParameter[] { 
                new SqlParameter ("@cateDetailName","aaaaaaaa" ),
                new SqlParameter ("@cateid",3 )};
                sqlhelp.executeSql("addDetailCate", param2);