2012-08-10 49 views
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(); 

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

回答

0

您需要的参数添加到您的SqlParameter如:

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

它们设置在以下行的值。应根据文档工作正常:http://msdn.microsoft.com/en-us/library/system.data.sqlclient.sqlparameter.value.aspx – 2012-08-10 11:08:19

-3

如果您的StoredProcedure期待一个parament比你必须通过它SqlCommand对象

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


我使用提供SQLHelper类这里。

10

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

SqlCommand AddEquip = new SqlCommand("AddYear", dbConn); 
AddEquip.CommandType = CommandType.StoredProcedure; 
相关问题