如何向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集合,但它并没有解决我的问题。 我应该创建两个集合并连接它们吗? 我认为必须有一种简单的方法来添加项目。 有什么建议?

只需使用列表:

 var parameters = new List { new SqlParameter("@PromptID", promptID) }; if (scenarioID != 0) { parameters.Add(new SqlParameter("@ScenarioID", scenarioID)); } 

如果你真的需要一个数组,你总是可以使用:

 var array = parameters.ToArray(); 
 var parameters = new List { new SqlParameter("@PromptID", promptID), }; 

您应该使用List而不是数组。

  List dbParams = new List(); 

然后你就可以做到

  dbParams.Add(new SqlParameter("@PromptID", promptID); 

如果您知道最大项目数(SQLParameter类型的实例),那么以下方法是理想的。 此外,您可以使用List方法,该方法由同行简要介绍。

  var dbParams = new SqlParameter[2]; dbParams.SetValue(new SqlParameter("@PromptID", promptID),0); dbParams.SetValue(new SqlParameter("@ScenarioID", scenarioID), scenarioID != 0 ? 1 : 0);