如何向SqlParameter[]集合中添加新参数?

5

我希望使用类似于这样的东西:

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


顺便说一下,不清楚你为什么要使用那个 DataSet... - Jon Skeet
使用List<SqlParameter> dbParams,然后您可以执行dbParams.Add(new SqlParameter("@PromptID", promptID))。 - Ehsan
2
@EhsanUllah - 通常建议您将问题的答案放在答案中。评论不是永久性的,可能会被删除,因此它们通常是保留用于有关问题或旁观信息的问题。 - JDB
5个回答

16

只需使用列表:

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),       
};

2

在IT技术中,建议您使用List而不是array。

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

然后你可以做

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

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);

-1

其他建议:

SqlParameter[] sqlPar = new SqlParameter[1];
sqlPar[0] = new SqlParameter("@System", "Teste");

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接