过程或函数需要参数,该参数未提供

时间:2012-08-10 11:01:04

标签: c# sql-server

我使用c#中的参数调用SQL Server 2008编写的简单存储过程但显示错误 “过程或函数'AddYear'需要参数'@mYear',这是未提供的。”

这段代码出了什么问题,我尝试了几件事,但没有成功。

    SqlCommand AddEquip = new SqlCommand("AddYear", dbConn);
    SqlDataReader rdrEquip;

    SqlParameter mP = new SqlParameter("@mYear",SqlDbType.VarChar ) ;

    mP.Value = "1990";

    AddEquip.Parameters.Add(mP);


    rdrEquip = AddEquip.ExecuteReader();  

- 参数名称&类型与我在程序中使用的相同。

3 个答案:

答案 0 :(得分:10)

好像你忘记将SqlCommand设置为存储过程:

SqlCommand AddEquip = new SqlCommand("AddYear", dbConn);
AddEquip.CommandType = CommandType.StoredProcedure;

答案 1 :(得分:0)

您需要将参数添加到SqlParameter中,例如:

mP = new SqlParameter("@mYear", SqlDbType.VarChar, PARAMETER_HERE);

答案 2 :(得分:-3)

如果你的Storedprocedure期待一个游行而不是你必须传递sqlcommand对象

 SqlParameter[] param = new SqlParameter[0];
            param[0] = new SqlParameter("@mYear", "1990");
rdrEquip = SqlHelper.ExecuteReader(Con, CommandType.StoredProcedure, "SPC_proc", param);


我在这里使用sqlhelper类。