C# でパラメータを使用してストアドプロシージャを実行する

C# でパラメータを使用してストアドプロシージャを実行する

このガイドでは、C# のパラメーターを使用してストアドプロシージャを実行/呼び出す方法、つまり、ストアドプロシージャ内でパラメーターを渡す方法を学習します。

このコンパクトなガイドでは、上から下まですべてを学びます。飛び込みましょう!

C# のパラメータを使用してストアドプロシージャを実行する

C# のパラメーターを使用してストアドプロシージャを呼び出す方法を理解するには、ストアドプロシージャに関するすべての基本を理解する必要があります。

それらは何であり、どのような目的で使用されますか?それらの利点は何ですか?それらをどのように作成および変更しますか?

C# のストアドプロシージャ

単一の実行プランにアセンブルされた Transact-SQL ステートメントのコレクションは、ストアドプロシージャです。データベースサーバーは、ストアドプロシージャと呼ばれるコードブロックを使用します。これは、一度コンパイルされて繰り返し使用できるプリコンパイル済みエンティティです。

一連の SQL ステートメントは、ストアード・プロシージャーを使用して順次実行できます。プロセスにデータを提供するには、プロシージャパラメータを使用する必要があります。

ストアドプロシージャは、パラメータマッピングの概念を使用します。フロントエンドとプロシージャパラメータの名前、タイプ、および方向は一致する必要があり、フロントエンドパラメータの長さはプロシージャパラメータの長さ以下である必要があります(パラメータをマップすることしかできません)。

return ステートメントを使用して、プロシージャから任意の値を返します。

C# でストアドプロシージャを使用する理由

データベースからデータにアクセスするには、通常、selectinsertupdate などの SQL クエリを作成します。同じクエリを頻繁に使用する場合は、クエリをストアドプロシージャに変換するのが理にかなっています。

クエリを作成するたびに、データベースがクエリを解析します。ストアドプロシージャを作成した場合は、1 回だけ解析した後、N 回実行できます。

パフォーマンスは、保存されたルーチンを介して強化することもできます。データベースサーバー上の単一の実行ブロックであるストアドプロシージャには、すべての条件付きロジックが含まれています。

C# のパラメーターを使用してストアドプロシージャを実行する:コード例

以下は、C# のパラメーターを使用してストアドプロシージャを実行する手順です。

コード例:

C
# cCopyusing System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
using System.Data;
namespace Stored_procedure {
  internal class Program {
    static void Main(string[] args) {
      // connection with sql
      try {
        // string for connection information
        string con_str = "pass your connection path/information";
        // create connection
        using (SqlConnection con = new SqlConnection(con_str)) {
          // create sqlcommand object
          SqlCommand cmd = new SqlCommand();
          cmd.CommandText = "Write the name of your stored prcedure";
          cmd.Connection = con;
          // specify the command type
          cmd.CommandType = CommandType.StoredProcedure;

          // create object of sqlparameter class
          SqlParameter param = new SqlParameter {
            // set the name of parameter
            ParameterName = "Write your parameter name",
            // set the type of parameter
            SqlDbType = SqlDbType.Int, Value = 2,
            // you can specify the direction of parameter input/output/inputoutput
            Direction = ParameterDirection.InputOutput
          };
          // adding parameter in command
          cmd.Parameters.AddWithValue(param);
          // open connection of db
          con.Open();
          // executing the query
          cmd.ExecuteNonQuery();
        }
      } catch (Exception e) {
        Console.WriteLine(e.Message);
      }
    }
  }
}
チュートリアルを楽しんでいますか? <a href="https://www.youtube.com/@delftstack/?sub_confirmation=1" style="color: #a94442; font-weight: bold; text-decoration: underline;">DelftStackをチャンネル登録</a> して、高品質な動画ガイドをさらに制作するためのサポートをお願いします。 Subscribe
著者: Haider Ali
Haider Ali avatar Haider Ali avatar

Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.

LinkedIn