ストアドプロシージャを使って特定の値を取得する方法

  SQL Server のストアドプロシージャを使って特定の値を取得するには、「SqlCommand」の「ExecuteNonQuery()」を使用します。
【使い方】

 ストアドプロシージャ「sp標準等級」にパラメータとして「区分」を設定して、戻り値「等級」を取得する例。
// cn は、SqlConnection


// ストアドプロシージャを設定
SqlCommand cmd = new SqlCommand("sp標準等級", cn);
cmd.CommandType = CommandType.StoredProcedure;


// ストアドプロシージャのパラメータを設定
SqlParameter param = cmd.Parameters.Add("@等級", SqlDbType.SmallInt, 0, "等級");
// パラメータの入出力タイプを設定
param.Direction = ParameterDirection.Output;

// ストアドプロシージャのパラメータを設定
param = cmd.Parameters.Add("@区分", SqlDbType.SmallInt);
// パラメータの値を設定
param.Value = value;


// ストアドプロシージャを実行
cmd.ExecuteNonQuery();


// 戻り値で定数を設定する
if ( cmd.Parameters("@等級").Value.GetType() != typeof( System.DBNull.Value ))
{
    rank = Convert.ToInt16(cmd.Parameters("@等級").Value);
}
【注意】
戻る