使用 C# 將參數化變數批次插入資料庫
有效地將大量參數化變數插入資料庫是開發人員面臨的常見挑戰。 C# 提供了一種使用表值參數和預存程序在單一查詢中插入多行的解決方案。
建立使用者定義的表格類型
先建立一個鏡像目標資料庫結構的使用者定義表格類型表:
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 表類型中的資料插入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中文網其他相關文章!