首頁 > 後端開發 > C++ > C# 如何有效率地將參數化資料批次插入資料庫?

C# 如何有效率地將參數化資料批次插入資料庫?

Patricia Arquette
發布: 2025-01-03 21:18:09
原創
991 人瀏覽過

How Can C# Efficiently Bulk Insert Parameterized Data into a Database?

使用 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();
    }
}
登入後複製

使用表值的優點參數

使用表值參數有幾個優點:

  • 高效率:單一查詢取代多個插入語句,顯著提高性能。
  • 參數化:資料以參數化的方式傳遞,降低了風險SQL注入攻擊。
  • 可擴充:可以在不改變預存程序的情況下修改使用者定義的表類型以符合不同的場景。

以上是C# 如何有效率地將參數化資料批次插入資料庫?的詳細內容。更多資訊請關注PHP中文網其他相關文章!

來源:php.cn
本網站聲明
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn
作者最新文章
熱門教學
更多>
最新下載
更多>
網站特效
網站源碼
網站素材
前端模板