如何使用名称访问SqlParameter数组

时间:2013-02-28 16:32:27

标签: c# ado.net

我正在创建SqlParameter数组并将其传递给StoredProcedure。输出值将在StoredProcedures中设置。如何通过参数名称访问该值?

 SqlParameter[] parameters = { new SqlParameter {ParameterName = "@test", Value = "test", Direction = ParameterDirection.Output }}; 

这有效

parameters[0].Value

如何使其发挥作用?

parameters["@test"].Value

3 个答案:

答案 0 :(得分:4)

这只是一个SqlParameters数组,因此它将保持序数,因为任何数组都可以工作。你可以在这里使用LINQ(很快就会有例子)

parameters.First(parameter => parameter.ParameterName == "@test")

答案 1 :(得分:1)

您可以使用Enumerable.First()方法

  

返回序列的第一个元素。

SqlParameter[] parameters = { new SqlParameter { ParameterName = "@test", Value = "test", Direction = ParameterDirection.Output } };
Console.WriteLine(parameters.First(parameter => parameter.ParameterName == "@test"));

输出将是;

@test

答案 2 :(得分:0)

您可以尝试以下方法:

enum ParamNames { ReportName, Description, MaxReportsAllowed, IncludeSignatures};

SqlParameter[] param = new SqlParameter[32];
param[ReportName] = new SqlParameter("@ReportName", ReportName1.Text);
param[Description] = new SqlParameter("@Description", Description.Text);