0

これは私が持っているものであり、これが正しい方法であるかどうか、そうでない場合は何が最適かを考えていました。

public static int AddPullSubscription(string connectionString)
{
    try
    {
        using (SqlConnection conn = new SqlConnection(connectionString))
        {
            using (SqlCommand cmd = new SqlCommand("", conn))
            {
                cmd.CommandType = CommandType.StoredProcedure;

                var returnParameter = cmd.Parameters.Add("@RETURN_VALUE", SqlDbType.Int);
                returnParameter.Direction = ParameterDirection.ReturnValue;

                cmd.ExecuteNonQuery();

                return Convert.ToInt32(returnParameter.Value);
            }
        }
    }
    catch (Exception)
    {
        throw;
    }
}
4

3 に答える 3

1

ストアド プロシージャの結果によって異なります。

  1. ExecuteNonQuery: 影響を受ける行の数だけが必要な場合。私の知る限り、SPで使用していなければ機能Set NoCount onします。もちろん、パフォーマンスのためにそれをオンにしておいてください。@Return_Valueただし、整数値を取得するために使用したのと同じように使用できます。例. _

  2. ExecuteScalar: SQL でサポートされている型の値のみを選択したい場合。例. _

  3. ExecuteReader: 選択したレコードを進めています。例. _

また、catch(Exception) に関するこの記事もご覧ください。

于 2012-08-24T18:33:40.900 に答える