は私の方法だ:どのように私はすべてを読み込むことができ、Sqlcommand.Parametersに数値を追加する方法は?ここ
The SqlParameterCollection only accepts non-null SqlParameter type objects, not Int32 objects.
ので:
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();
}
は、foreach文に到達したとき、私はエラーを取得し、私は私のオブジェクト配列PARAMETROSにint型を追加したと言います私のパラメータはこのクラスの外にあり、それらをすべてジェネリック配列に置き、このメソッドに渡してそれを魔法にします。どんな助け?
編集:友人がこのコードを送ってくれましたか?私はそれが何をしているのか分からない。 :あなたはこれを実行する必要が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;
}
}
はちょうど 'Parameters.AddWithValue'を使用しない理由は他の質問http://stackoverflow.com/questions/1355643/trouble-using-my-stored-procedure –