SqlCommandの戻り値パラメータ追加/値取得を拡張メソッドで実装してみます。
using System; using System.Data; using System.Data.SqlClient; namespace DataAccess { public static class SqlParameterCollectionExtensions { /// <summary> /// 戻り値のパラメータを追加します。 /// </summary> /// <remarks>戻り値のパラメータの値は<see cref="ReturnValue"/>メソッドで取得します。</remarks> /// <param name="self">SqlParameterCollectionのインスタンス。</param> /// <returns>追加されたSqlParameterインスタンス。</returns> public static SqlParameter AddReturnParameter(this SqlParameterCollection self) { SqlParameter p = new SqlParameter(); p.SqlDbType = SqlDbType.Int; p.Direction = ParameterDirection.ReturnValue; return self.Add(p); } /// <summary> /// 戻り値のパラメータの値を取得します。 /// </summary> /// <param name="self">SqlParameterCollectionのインスタンス。</param> /// <returns>戻り値のパラメータの値。</returns> public static int ReturnValue(this SqlParameterCollection self) { foreach (SqlParameter p in self) { if (p.Direction != ParameterDirection.ReturnValue) continue; return (int)p.Value; } throw new InvalidOperationException("このSqlCommandには戻り値のパラメータがありません。"); } } }