此SqlParameterCollection不包含带ParameterName的SqlParameter

时间:2011-10-28 17:01:03

标签: c# sql parameter-passing

无法弄清楚为什么我会继续

  

此参数不包含带有ParameterName的SqlParameter   SqlParameterCollection

当我一直在拉动并在其他方法中调用这样的过程时。

proc确实在该套管中有一个参数@EqId。

List<string> equipTypes = new List<string>();

Database db = DatabaseFactory.CreateDatabase("OurDBName");
DbCommand cmd = db.GetStoredProcCommand("Get_EquipTypes_By_ID");

db.DiscoverParameters(cmd);
cmd.Parameters["@EqId"].Value = equipID;

using (IDataReader objReader = db.ExecuteReader(cmd))
{
   while (objReader.Read())
      equipTypes.Add(DataUtility.GetStringFromReader(objReader, "Data"));
}

2 个答案:

答案 0 :(得分:2)

这样添加参数

 cmd.Parameters.AddWithValue("@EqId", equipID);

我认为这是最干净的方式,有点像:)

答案 1 :(得分:0)

首先,当您了解参数时,我不会发现参数。由于您正在执行此操作,请检查参数集合并确保正在发现参数。为了让你明白这一点,我会瞄准更像Greg建议的东西。