我使用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 :(得分: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类。