我有这段代码:
private SqlParameter[] GetSPParams()
{
SqlParameter[] spParams = null;
int loopNum = 1;
while (ParamExists(loopNum))
{
//spParams.
new SqlParameter()
{
ParameterName = GetParamName(loopNum),
SqlDbType = GetSqlDbType(loopNum),
Value = GetParamValue(loopNum)
};
loopNum++;
}
return spParams;
}
...正如您所见,它总是返回null。
" spParams。"被注释掉了,因为我发现没有"添加"或智能感知的可能性 - 或任何看起来正确的东西。
我需要一个SqlParameter数组,因为这最终会传递给运行存储过程的方法:
private void RunStoredProc()
{
SqlParameter[] spparams = GetSPParams();
DataTable dtSPResults = SPRunnerSQL.ExecuteSQLReturnDataTable(comboBoxCPSStoredProcs.Text,
CommandType.StoredProcedure,
spparams
);
rowsReturned = dtSPResults.Rows.Count;
labelRowsReturned.Text = String.Format("Rows returned: {0}", rowsReturned);
if (rowsReturned > 0)
{
dataGridView.DataSource = dtSPResults;
}
}
. . .
public static DataTable ExecuteSQLReturnDataTable(string sql, CommandType cmdType, params SqlParameter[] parameters)
那么如何将SqlParameter值添加到SqlParameter数组?
答案 0 :(得分:2)
您可以使用List<SqlParameter>
代替array
,然后您应该可以添加新元素。然后,只返回一个调用方法ToArray()
的数组,将集合转换为array
。
private SqlParameter[] GetSPParams()
{
var spParams = new List<SqlParameter>();
int loopNum = 1;
while (ParamExists(loopNum))
{
spParams.Add(new SqlParameter()
{
ParameterName = GetParamName(loopNum),
SqlDbType = GetSqlDbType(loopNum),
Value = GetParamValue(loopNum)
});
}
return spParams.ToArray();
}
现在,如果你需要添加nem成员,你可以从SqlParameter
派生,但作为documentation,这个类是sealed
。