C# 过程或函数需要未提供的参数
我调用了一个用SQLServer2008编写的简单存储过程,参数来自c#,但它显示错误 “过程或函数'AddYear'需要参数'@mYear',但未提供该参数。” 这段代码有什么问题,我尝试了几件事,但都没有成功C# 过程或函数需要未提供的参数,c#,sql-server,C#,Sql Server,我调用了一个用SQLServer2008编写的简单存储过程,参数来自c#,但它显示错误 “过程或函数'AddYear'需要参数'@mYear',但未提供该参数。” 这段代码有什么问题,我尝试了几件事,但都没有成功 SqlCommand AddEquip = new SqlCommand("AddYear", dbConn); SqlDataReader rdrEquip; SqlParameter mP = new SqlParameter("@mYear",SqlDb
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();
--参数名称和类型与我在过程中使用的相同。您需要将参数添加到SqlParameter中,例如:
mP = new SqlParameter("@mYear", SqlDbType.VarChar, PARAMETER_HERE);
如果StoredProcess需要参数,则必须将其传递给sqlcommand对象
SqlParameter[] param = new SqlParameter[0];
param[0] = new SqlParameter("@mYear", "1990");
rdrEquip = SqlHelper.ExecuteReader(Con, CommandType.StoredProcedure, "SPC_proc", param);
我在这里使用sqlhelper类。似乎您忘记将
SqlCommand
设置为存储过程:
SqlCommand AddEquip = new SqlCommand("AddYear", dbConn);
AddEquip.CommandType = CommandType.StoredProcedure;
他们正在设置下一行中的值。根据文档,应该可以正常工作: