我想使用类似的东西:
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集合,但它并没有解决我的问题。我应该创建两个集合并连接它们吗?我认为必须有一种简单的方法来添加项目。有什么建议吗?
答案 0 :(得分:11)
只需使用列表:
var parameters = new List<SqlParameter>
{
new SqlParameter("@PromptID", promptID)
};
if (scenarioID != 0)
{
parameters.Add(new SqlParameter("@ScenarioID", scenarioID));
}
如果确实最后需要一个数组,您可以随时使用:
var array = parameters.ToArray();
答案 1 :(得分:2)
var parameters = new List<SqlParameter>
{
new SqlParameter("@PromptID", promptID),
};
答案 2 :(得分:1)
您应该使用List而不是数组。
List<SqlParameter> dbParams = new List<SqlParameter>();
然后你可以做
dbParams.Add(new SqlParameter("@PromptID", promptID);
答案 3 :(得分:0)
如果您知道最大项目数(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);
答案 4 :(得分:0)
其他建议:
SqlParameter[] sqlPar = new SqlParameter[1];
sqlPar[0] = new SqlParameter("@System", "Teste");