Как добавить новый параметр в SqlParameter [] Collection?
Я хочу использовать нечто подобное:
using (DataSet ds = new DataSet())
{
SqlParameter[] dbParams = new SqlParameter[]
{
new SqlParameter("@PromptID", promptID)
};
if (scenarioID != 0)
dbParams.Concat(new SqlParameter("@ScenarioID", scenarioID));
//OR
if (scenarioID != 0)
dbParams.Add(new SqlParameter("@ScenarioID", scenarioID));
}
}
Я искал добавление коллекции IEnumarable, но это не решило мою проблему. Должен ли я создавать две коллекции и конкатрировать их? Я думаю, что должен быть простой способ добавить элемент. Любые предложения?
Ответы
Ответ 1
Просто используйте список:
var parameters = new List<SqlParameter>
{
new SqlParameter("@PromptID", promptID)
};
if (scenarioID != 0)
{
parameters.Add(new SqlParameter("@ScenarioID", scenarioID));
}
Если вам действительно нужен массив в конце, вы всегда можете использовать:
var array = parameters.ToArray();
Ответ 2
var parameters = new List<SqlParameter>
{
new SqlParameter("@PromptID", promptID),
};
Ответ 3
Вы должны использовать List вместо массива.
List<SqlParameter> dbParams = new List<SqlParameter>();
а затем вы можете сделать
dbParams.Add(new SqlParameter("@PromptID", promptID);
Ответ 4
Если вы знаете максимальное количество элементов (instanses типа SQLParameter
), то следующий подход идеален. Кроме того, вы можете пойти с подходом List<SqlParameter>
, который кратко описывается сверстниками.
var dbParams = new SqlParameter[2];
dbParams.SetValue(new SqlParameter("@PromptID", promptID),0);
dbParams.SetValue(new SqlParameter("@ScenarioID", scenarioID), scenarioID != 0 ? 1 : 0);