在C# 中使用單一查詢插入多個參數化行
參數化查詢允許開發人員在不硬編碼值的情況下執行SQL 語句,從而防止SQL注入攻擊並提高效能。使用參數化值插入多行可以非常高效,尤其是在使用大量行時。
在提供的程式碼中,每行都是單獨插入的,這可能會很慢。為了解決這個問題,您可以利用 SQL Server 2008 及更高版本的表值參數。
建立表值參數
首先,建立一個用戶-定義資料列的定義表類型:
CREATE TYPE MyTableType AS TABLE ( Col1 int, Col2 varchar(20) )
建立一個預存程序
接下來,建立一個接受表值參數的預存程序:
CREATE PROCEDURE MyProcedure ( @MyTable dbo.MyTableType READONLY ) AS INSERT INTO MyTable (Col1, Col2) SELECT Col1, Col2 FROM @MyTable GO
請注意,@MyTable 參數被標記為READONLY,因為表值參數必須是唯讀的。
使用a 執行預存程序DataTable
最後,使用DataTable 從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中文網其他相關文章!