3

我正在使用来自 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();  

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

4

3 回答 3

12

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

SqlCommand AddEquip = new SqlCommand("AddYear", dbConn);
AddEquip.CommandType = CommandType.StoredProcedure;
于 2012-08-11T03:29:37.613 回答
0

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

mP = new SqlParameter("@mYear", SqlDbType.VarChar, PARAMETER_HERE);
于 2012-08-10T11:04:51.320 回答
-3

如果您的 Storedprocedure 需要一个参数,那么您必须将其传递给 sqlcommand 对象

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


我在这里使用 sqlhelper 类。

于 2012-08-10T11:08:04.860 回答