在C# 中使用參數化變數執行批次插入
在資料庫操作中,通常需要在資料庫中插入多個參數化變數,尤其是當資料庫正在從Web 應用程式接收資料時。為了最佳化此類操作並避免重複,可以使用預存程序和表值參數。
要在C# 中實現此目的,請按照以下步驟操作:
建立使用者定義的表格類型(UDT):
定義UDT 以符合要插入的資料的結構。例如:
CREATE TYPE MyTableType AS TABLE ( Col1 int, Col2 varchar(20) ) GO
使用表值參數建立預存程序:
一個接受UDT 作為參數的預存程序。過程會將資料插入目標資料庫表中:
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
填入資料表:
使用參數執行儲存程序:
執行指令進行批次插入。
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# 程式碼對 SQL Server 資料庫進行參數化批次插入。這種方法不僅可以防止重複,還可以透過對多行執行單一查詢來最佳化資料庫效能。
以上是如何在 C# 和 SQL Server 中執行高效率的參數化批次插入?的詳細內容。更多資訊請關注PHP中文網其他相關文章!