Вот мой метод:
public void EjecutarGuardar(string ProcedimientoAlmacenado, object[] Parametros)
{
SqlConnection Connection = new SqlConnection(ConfigurationManager.ConnectionStrings["ConnectionString"].ConnectionString);
SqlCommand Command = Connection.CreateCommand();
Command.CommandText = ProcedimientoAlmacenado;
Command.CommandType = CommandType.StoredProcedure;
foreach (object X in Parametros)
{
Command.Parameters.Add(X);
}
Connection.Open();
Command.ExecuteNonQuery();
Connection.Close();
Connection.Dispose();
}
Скажем, я добавил int в свой массив объектов PARAMETROS, когда он достигает оператора foreach, я получаю ошибку:
Только SqlParameterCollection
принимает ненулевой тип SqlParameter
объекты, а не объекты Int32.
Итак, как я могу загрузить все свои параметры за пределы этого класса, а затем поместить их все в общий массив и передать его этому методу, чтобы сделать его волшебным. Любая помощь?
Редактировать: друг прислал мне этот код, он будет работать? Я не могу понять, что он делает. : S
protected void CargarParametros(SqlCommand Com, System.Object[] Args)
{
for (int i = 1; i < Com.Parameters.Count; i++)
{
SqlParameter P = (SqlParameter)Com.Parameters[i];
if (i <= Args.Length )
P.Value = Args[i - 1];
else
P.Value = null;
}
}