C# を使用してパラメーター化された変数をデータベースに一括挿入する
多数のパラメーター化された変数をデータベースに効率的に挿入することは、開発者が直面する一般的な課題です。 C# は、テーブル値パラメーターとストアド プロシージャを使用して、単一のクエリに複数の行を挿入するソリューションを提供します。
ユーザー定義のテーブル タイプの作成
まず、ターゲットデータベースの構造をミラーリングするユーザー定義のテーブルタイプtable:
CREATE TYPE MyTableType AS TABLE ( Col1 int, Col2 varchar(20) ) GO
ストアド プロシージャの定義
次に、新しく作成したテーブル タイプを入力パラメータとして受け入れるストアド プロシージャを作成します:
CREATE PROCEDURE MyProcedure ( @MyTable dbo.MyTableType READONLY -- NOTE: table valued parameters must be Readonly! ) AS INSERT INTO MyTable (Col1, Col2) SELECT Col1, Col2 FROM @MyTable GO
このストアド プロシージャは、@MyTable テーブル タイプのデータを、
C# からのストアド プロシージャの実行
最後に、次のコードを使用して C# からストアド プロシージャを実行します。
DataTable dt = new DataTable(); dt.Columns.Add("Col1", typeof(int)); dt.Columns.Add("Col2", typeof(string)); // Fill your data table here 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(); } }
テーブル値を使用する利点パラメータ
テーブル値パラメータを使用すると、次のような利点があります。
以上がC# でパラメータ化されたデータをデータベースに効率的に一括挿入するにはどうすればよいですか?の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。