ホームページ >データベース >mysql チュートリアル >ADO.NET から SQL Server ストアド プロシージャにテーブル値パラメーターを渡す方法

ADO.NET から SQL Server ストアド プロシージャにテーブル値パラメーターを渡す方法

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-11 06:28:42738ブラウズ

How to Pass Table-Valued Parameters from ADO.NET to SQL Server Stored Procedures?

ADO.NET を使用してテーブル値パラメーターを SQL Server ストアド プロシージャに渡す

このガイドでは、ADO.NET のテーブル値パラメーターを使用して、テーブルや配列などの構造化データを SQL Server ストアド プロシージャに送信する方法を説明します。 次の手順に従ってください:

  1. SQL Server ユーザー定義テーブルの種類を定義します。 CREATE TYPE ステートメントを使用して、テーブル値データを構造化します。 例:
<code class="language-sql">CREATE TYPE [dbo].[MyDataType] AS TABLE
(
    ID INT,
    Name NVARCHAR(50)
)</code>
  1. ストアド プロシージャの作成: ストアド プロシージャ内でテーブル値パラメーターを読み取り専用の入力パラメーターとして宣言します。例:
<code class="language-sql">CREATE PROCEDURE [dbo].[MyProcedure]
(
    @myData [dbo].[MyDataType] READONLY
)
AS
BEGIN
    SELECT * FROM @myData
END</code>
  1. C# で DataTable にデータを取り込む: C# コードで DataTable を作成し、渡すデータをそれに取り込みます。
<code class="language-csharp">DataTable myDataTable = new DataTable("MyDataType");
myDataTable.Columns.Add("Name", typeof(string));
myDataTable.Columns.Add("Id", typeof(Int32));
myDataTable.Rows.Add("XYZ", 1);
myDataTable.Rows.Add("ABC", 2);</code>
  1. SQL パラメータを作成して追加します: SqlParameter オブジェクトを作成し、そのプロパティを設定します:
  • ParameterName: ストアド プロシージャのパラメーター名と一致する必要があります。
  • SqlDbType: Structuredに設定します。
  • Value: DataTable を値として割り当てます。

次のパラメータをコマンド オブジェクトに追加します:

<code class="language-csharp">SqlParameter parameter = new SqlParameter();
parameter.ParameterName = "@myData";
parameter.SqlDbType = System.Data.SqlDbType.Structured;
parameter.Value = myDataTable;
command.Parameters.Add(parameter);</code>

次の手順に従うことで、ADO.NET アプリケーションから SQL Server ストアド プロシージャにテーブル値パラメーターを効率的に渡すことができます。

以上がADO.NET から SQL Server ストアド プロシージャにテーブル値パラメーターを渡す方法の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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