C# でストアド プロシージャを利用する場合、次のようなコードがよく発生します。
しかし、次のような疑問が生じます: cmd.CommandType = という行はCommandType.StoredProcedure;
パフォーマンス テストによると、CommandType.Text と CommandType.StoredProcedure のどちらを使用するかに関係なく、SQL Server はパラメーター化を実行します。ただし、CommandType.StoredProcedure を使用すると、SQL Server によってパラメータ化がより効率的に行われます。これにより、CommandType.StoredProcedure.
CommandType.Text を使用する場合、CommandText 自体にパラメーター名を含めることが重要です。これは、SQL Server がステートメントをパラメータ化するために使用する sp_executesql ラッパーが、パラメータ名を自動的に渡さないためです。したがって、確実に適切に実行するには、それらを手動で指定する必要があります。
たとえば、次のようなプロシージャを作成する場合:
その後、CommandType.Text を使用してそれを呼び出す場合、次の内容を含める必要があります。 CommandText 内のパラメータ名:
それ以外の場合、指定されたパラメータが正しくなかったことを示すエラーが発生します。
要約:
以上がC# でストアド プロシージャを実行する場合、「cmd.CommandType = CommandType.StoredProcedure;」は必要ですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。