3

我想使用类似这样的东西:

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

4

5 回答 5

13

只需使用一个列表:

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

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

var array = parameters.ToArray();
于 2013-05-23T12:57:29.417 回答
2
var parameters = new List<SqlParameter>
{
    new SqlParameter("@PromptID", promptID),       
};
于 2013-05-23T12:59:19.907 回答
2

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

   List<SqlParameter> dbParams = new List<SqlParameter>(); 

然后你可以做

   dbParams.Add(new SqlParameter("@PromptID", promptID);
于 2013-05-23T13:02:19.950 回答
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);
于 2013-05-23T13:13:29.813 回答
-1

其他建议:

SqlParameter[] sqlPar = new SqlParameter[1];
sqlPar[0] = new SqlParameter("@System", "Teste");
于 2019-02-22T13:13:20.937 回答