ホームページ >バックエンド開発 >C++ >C# からパラメーターを使用してストアド プロシージャを呼び出す方法

C# からパラメーターを使用してストアド プロシージャを呼び出す方法

Mary-Kate Olsen
Mary-Kate Olsenオリジナル
2025-01-23 12:56:10629ブラウズ

How to Call a Stored Procedure with Parameters from C#?

パラメーターを使用した C# ストアド プロシージャの実行: 包括的なガイド

ストアド プロシージャは、C# アプリケーション内で挿入、更新、削除などのデータベース操作を実行するための堅牢かつ効率的な方法を提供します。 このアプローチにより、SQL コマンドを直接実行する場合に比べて、パフォーマンス上の利点が得られ、モジュール性が強化されます。このチュートリアルでは、C# を使用してパラメーターを受け入れるストアド プロシージャを呼び出す方法を示します。

ストアド プロシージャを理解する

ストアド プロシージャ sp_Add_Contact がすでに定義されていると仮定します。このプロシージャは、@FirstName@LastName の 2 つのパラメーターを受け入れます。 この手順により、新しい連絡先レコードがデータベースに挿入されます。

データベース接続の確立

まず、SqlConnection オブジェクトを作成してデータベースへの接続を確立します。この接続はプロセス全体を通じて利用されます。

<code class="language-csharp">using (SqlConnection con = new SqlConnection(dc.Con)) {
    // Database operations will be performed within this block
}</code>

SqlCommand オブジェクトの準備

次に、SqlCommand ストアド プロシージャを表す sp_Add_Contact オブジェクトをインスタンス化します。 重要なのは、CommandType プロパティを StoredProcedure に設定して、直接 SQL クエリではなくストアド プロシージャを使用していることを示すことです。

<code class="language-csharp">using (SqlCommand cmd = new SqlCommand("sp_Add_contact", con)) {
    cmd.CommandType = CommandType.StoredProcedure;
    // Parameter additions and execution will occur here
}</code>

コマンドへのパラメータの追加

cmd メソッドを使用して、入力パラメータを Parameters.Add オブジェクトに追加します。パラメーター名、データ型 (SqlDbType) を指定し、アプリケーションのユーザー インターフェイス コントロールから値を割り当てます。

<code class="language-csharp">cmd.Parameters.Add("@FirstName", SqlDbType.VarChar).Value = txtFirstName.Text;
cmd.Parameters.Add("@LastName", SqlDbType.VarChar).Value = txtLastName.Text;</code>

ストアド プロシージャの実行

パラメータを定義すると、ストアド プロシージャを実行する準備が整います。 ExecuteNonQuery メソッドを使用してコマンドをデータベースに送信し、変更を適用します。

<code class="language-csharp">con.Open();
cmd.ExecuteNonQuery();
con.Close();</code>

実行後のデータの更新

ストアド プロシージャが正常に実行された後、アプリケーションに表示されるデータを更新する必要がある場合があります。 ClearFill および DataTable 操作を使用して、更新されたデータベースの状態を反映します。

<code class="language-csharp">dt.Clear();
da.Fill(dt);</code>

以上がC# からパラメーターを使用してストアド プロシージャを呼び出す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。