首頁 >資料庫 >mysql教程 >如何使用 C# 有效率地將多個參數化行插入 SQL 資料庫?

如何使用 C# 有效率地將多個參數化行插入 SQL 資料庫?

Linda Hamilton
Linda Hamilton原創
2025-01-12 06:45:41568瀏覽

How Can I Efficiently Insert Multiple Parameterized Rows into a SQL Database Using C#?

利用表值參數實現C#批次參數化行插入

在資料庫操作中,有效率地插入多行資料同時確保資料安全是常見需求。在C#中,可以使用表值參數和預存程序來實作。

為了避免重複使用「INSERT INTO」語句,批次插入參數化資料行,請遵循以下步驟:

  1. 建立使用者自訂表格類型 (UDT): 定義一個表格結構來表示要插入的行。例如:

    <code class="language-sql">CREATE TYPE MyTableType AS TABLE
    (
        Col1 int,
        Col2 varchar(20)
    )
    GO</code>
  2. 建立預存程序: 建立一個預存過程,該過程將接受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>
  3. 準備資料: 建立一個資料表,並用要插入的行填滿它。

  4. 執行預存程序: 使用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中文網其他相關文章!

陳述:
本文內容由網友自願投稿,版權歸原作者所有。本站不承擔相應的法律責任。如發現涉嫌抄襲或侵權的內容,請聯絡admin@php.cn