0

次のような Command オブジェクトがあります。

SqlCommand cmd1 = new SqlCommand();

別のルーチンで sqlParameterCollection を構築し、このコレクションをこの Command オブジェクトに渡すにはどうすればよいですか?

私はこのコードを持っています:

private SqlParameterCollection BuildParameters()
{
    SqlCommand cmd2 = new SqlCommand();

    cmd2.Parameters.Add("@year", SqlDbType.Int).Value = 2013;

    return cmd2.Parameters;
}

私はこのようなことをしたいと思います:

cmd1.Parameters = BuildParameters();
4

3 に答える 3

0

コレクション全体を単純に反復できます。

foreach (var mysqlParamater in oMySqlParameterCollection)
        {
            oMySqlCommand.Parameters.Add(mysqlParamater);
        }

以下のように使用できるSP名とともにmysqlparamaterコレクションを受け入れるメソッドを作成しました:-

public int ExecuteNonQuery(MySqlParameterCollection oMySqlParameterCollection, string storedProcedure)
    {
        int affectedRows = 0;
        _oMySqlConnection.Open();
        MySqlCommand oMySqlCommand = new MySqlCommand
        {
            CommandType = CommandType.StoredProcedure,
            CommandText = storedProcedure,
            Connection = _oMySqlConnection
        };
        foreach (var mysqlParamater in oMySqlParameterCollection)
        {
            oMySqlCommand.Parameters.Add(mysqlParamater);
        }
        affectedRows = oMySqlCommand.ExecuteNonQuery();
        _oMySqlConnection.Close();
        return affectedRows;
    }
于 2016-06-16T15:57:08.153 に答える