我目前正在通过循环浏览所有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
参数而不遍历参数列表?感谢
答案 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
,就像我在示例中所做的那样。