利用表值參數實現C#批次參數化行插入
在資料庫操作中,有效率地插入多行資料同時確保資料安全是常見需求。在C#中,可以使用表值參數和預存程序來實作。
為了避免重複使用「INSERT INTO」語句,批次插入參數化資料行,請遵循以下步驟:
建立使用者自訂表格類型 (UDT): 定義一個表格結構來表示要插入的行。例如:
<code class="language-sql">CREATE TYPE MyTableType AS TABLE ( Col1 int, Col2 varchar(20) ) GO</code>
建立預存程序: 建立一個預存過程,該過程將接受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>
準備資料: 建立一個資料表,並用要插入的行填滿它。
執行預存程序: 使用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中文網其他相關文章!