ホームページ >データベース >mysql チュートリアル >C# を使用して複数のパラメーター化された行を SQL データベースに効率的に挿入するにはどうすればよいですか?

C# を使用して複数のパラメーター化された行を SQL データベースに効率的に挿入するにはどうすればよいですか?

Linda Hamilton
Linda Hamiltonオリジナル
2025-01-12 06:45:41615ブラウズ

How Can I Efficiently Insert Multiple Parameterized Rows into a SQL Database Using C#?

テーブル値パラメーターを使用して C# バッチでパラメーター化された行挿入を実装する

データベース操作では、データのセキュリティを確保しながら複数行のデータを効率的に挿入することが一般的な要件です。 C# では、これはテーブル値パラメーターとストアド プロシージャを使用して実現できます。

「INSERT INTO」ステートメントの繰り返しの使用を避け、パラメーター化されたデータ行をバッチで挿入するには、以下の手順に従ってください。

  1. ユーザー定義テーブルタイプ (UDT) の作成: 挿入する行を表すテーブル構造を定義します。例:

    <code class="language-sql">CREATE TYPE MyTableType AS TABLE
    (
        Col1 int,
        Col2 varchar(20)
    )
    GO</code>
  2. ストアド プロシージャの作成: UDT をパラメータとして受け入れるストアド プロシージャを作成します。

    <code class="language-sql">CREATE PROCEDURE MyProcedure
    (
        @MyTable dbo.MyTableType READONLY -- 注意:表值参数必须是只读的!
    )
    AS
    
    INSERT INTO MyTable (Col1, Col2)
    SELECT Col1, Col2
    FROM @MyTable
    
    GO</code>
  3. データの準備: データテーブルを作成し、そこに挿入する行を入力します。

  4. ストアド プロシージャを実行します: SqlCommand オブジェクトを使用してストアド プロシージャを実行し、データ テーブルをパラメータとして渡します。

    <code class="language-csharp">using (var con = new SqlConnection("ConnectionString"))
    {
        using(var cmd = new SqlCommand("MyProcedure", con))
        {
            cmd.CommandType = CommandType.StoredProcedure;
            cmd.Parameters.Add("@MyTable", SqlDbType.Structured).Value = dt;
            con.Open();
            cmd.ExecuteNonQuery();
        }
    }</code>

この方法を使用すると、パラメータ化されたクエリを通じてデータのセキュリティを確保しながら、データベースに複数の行を効率的に挿入できます。これにより、重複する可能性のある非効率的な個別の挿入ステートメントが回避されます。

以上がC# を使用して複数のパラメーター化された行を SQL データベースに効率的に挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

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