如何直接设置SqlParameter而不循环访问参数列表

时间:2018-02-19 15:47:56

标签: c# parameters

我目前正在通过循环浏览所有SqlParameter的列表来设置SqlParameter的属性,但是想要在没有循环的情况下设置它们。

foreach (SqlParameter param in parameters)
{
    if (param.ParameterName.Contains("AvailableVals"))
    {
        param.SqlDbType = SqlDbType.Structured;
        param.Direction = ParameterDirection.Input;
        param.TypeName = "dbo.udtGenExpression";
        param.Value = inputValues.GetIdTable();
    }
}

是否可以按名称设置AvailableVals参数而不遍历参数列表?感谢

1 个答案:

答案 0 :(得分:0)

效率最高,您可以使用formGroup的函数直接按名称调用参数:

SqlParameterCollection

请注意,如果参数不存在且您没有有条件操作,则会抛出if(parameters.Contains("AvailableVals")) { parameters.Item("AvailableVals").SqlDbType = SqlDbType.Structured; parameters.Item("AvailableVals").Direction = ParameterDirection.Input; parameters.Item("AvailableVals").TypeName = "dbo.udtGenExpression"; parameters.Item("AvailableVals").Value = inputValues.GetIdTable(); } 。要么IndexOutOfRangeException要做一些有用的事情,要么首先验证catch,就像我在示例中所做的那样。