我正在尝试创建一个基于数组长度的动态SQLPARAMETER变量。这是我尝试过的伪代码:
for(i=0; i < array.length; i++)
{
SqlParameter [new variable name] = new SqlParameter;
[new variable name] = da.SelectCommand.CreateParameter();
[new variable name].ParameterName = paramName[i];
[new variable name].Value = array[i];
da.SelectCommand.Parameters.Add([new variable name]);
}
这样做的原因是创建一种方法来检索数据集,该方法将在其中调用数据集检索方法,以通过两个数组(不使用多维阵列),其中循环将确定数组的长度以确定数组的长度在将其发送到存储过程之前,请创建许多新的SQLParameter变量。
我一直遇到两个错误 - 一个错误无法创建一个以上的SQLPARAMETER变量,而索引从数组界排出的另一个错误。
有一种更好的方法来使用一种方法通过存储过程从数据库中检索数据集?
我在VB代码中有一个示例:
prmLicense = da.SelectCommand.CreateParameter
prmLicense.ParameterName = "@LicensePlate"
prmLicense.Value = license
prmState = da.SelectCommand.CreateParameter
prmState.ParameterName = "@StateIssued"
prmState.Value = state
da.SelectCommand.Parameters.Add(prmLicense)
da.SelectCommand.Parameters.Add(prmState)
这就是为什么我不想创建类似上述长的方法,而是想将循环使用到上面的类似的原因。
您不需要动态参数名称 - 参数将仅在循环的范围中重复使用:
for(i=0; i < array.length; i++)
{
SqlParameter param;
param = da.SelectCommand.CreateParameter();
param.ParameterName = paramName[i];
param.Value = array[i];
da.SelectCommand.Parameters.Add(param);
}