首頁 > 後端開發 > C++ > 如何在 C# 中透過參數化查詢高效插入多行?

如何在 C# 中透過參數化查詢高效插入多行?

DDD
發布: 2025-01-01 04:54:10
原創
528 人瀏覽過

How Can I Efficiently Insert Multiple Rows with Parameterized Queries in C#?

在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中文網其他相關文章!

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