【发布时间】:2016-05-27 19:01:14
【问题描述】:
我有这个代码:
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”。被注释掉是因为我在 Intellisense 的可能性中没有发现“添加”之类的东西——或者任何看起来正确的东西。
我需要一个 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 数组中?
【问题讨论】:
-
你可以创建一个
List<SqlParameter>,然后使用ToArray -
我认为您需要阅读有关表值参数的信息。 msdn.microsoft.com/en-us/library/bb675163(v=vs.110).aspx
标签: c# arrays sql-server stored-procedures sqlparameter