SqlParameter з параметромName не містяться в цьому SqlParameterCollection

Не можу зрозуміти, чому я продовжую отримувати

Цей параметр не містить SqlParameter з параметромName   SqlParameterCollection

коли я тягнув і викликав procs, як це чудово в інших методах.

Проц має один параметр @ EqId у цьому корпусі.

List equipTypes = new List();

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"));
}
1
Чому б ви навіть використовувати DiscoverParameters? Це додаткова поїздка в обидва кінці, але ви вже знаєте назву. Тобто для інструментів, які аналізують процеси.
додано Автор Marc Gravell, джерело

2 Відповіді

Зробіть ваші параметри додавання подібними

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

Я думаю, що це найчистіший спосіб зробити це, а добре, як :)

2
додано

По-перше, я б не виявив параметри, коли ви знаєте про параметри. Оскільки ви це робите, перегляньте збірку параметрів і переконайтесь, що параметр виявлений. У вас є те, що ви зрозуміли, я б націлився на щось більше, як запропонував Грег.

0
додано
var chat = new Chat();
var chat = new Chat();
642 учасників

Обсуждение вопросов по C# / .NET / .NET Core / .NET Standard / Azure Сообщества-организаторы: — @itkpi — @dncuug