>데이터 베이스 >MySQL 튜토리얼 >C#을 사용하여 매개 변수화된 여러 행을 데이터베이스에 효율적으로 삽입하는 방법은 무엇입니까?

C#을 사용하여 매개 변수화된 여러 행을 데이터베이스에 효율적으로 삽입하는 방법은 무엇입니까?

Susan Sarandon
Susan Sarandon원래의
2025-01-12 08:19:42937검색

How to Efficiently Insert Multiple Parameterized Rows into a Database using C#?

C#에서 데이터베이스 삽입 최적화: 단일 매개변수화된 쿼리 접근 방식

여러 행을 데이터베이스에 개별적으로 삽입하는 것은 비효율적입니다. 이 문서에서는 대량 삽입을 위해 C#에서 매개변수화된 단일 쿼리를 사용하는 고성능 방법을 보여줍니다.

핵심은 저장 프로시저와 테이블 반환 매개변수를 활용하는 것입니다. 이 접근 방식에는 세 가지 주요 단계가 포함됩니다.

  1. 테이블 유형 정의:

    사용자 정의 SQL Server 테이블 유형을 생성하여 열 이름과 데이터 유형을 지정하여 데이터 구조를 정의하세요.

  2. 저장 프로시저 만들기:

    사용자 정의 테이블 유형을 읽기 전용 테이블 반환 매개변수로 허용하는 저장 프로시저를 개발하세요. 그러면 이 절차를 통해 대상 데이터베이스 테이블에 데이터가 삽입됩니다. 테이블 값 매개 변수는 반드시 READONLY이어야 합니다.

  3. C# 코드 구현:

    C# 애플리케이션에서:

    • 사용자 정의 테이블 유형의 구조를 미러링하여 DataTable 개체를 만듭니다.
    • 삽입하려는 데이터로 DataTable을 채우세요.
    • DataTable을 테이블 반환 매개변수로 전달하여 저장 프로시저를 실행합니다.

다음은 이 프로세스를 보여주는 예입니다.

테이블 유형(SQL):

<code class="language-sql">CREATE TYPE MyTableType AS TABLE
(
    Col1 INT,
    Col2 VARCHAR(20)
)
GO</code>

저장 프로시저(SQL):

<code class="language-sql">CREATE PROCEDURE MyProcedure (@MyTable MyTableType READONLY)
AS
BEGIN
    INSERT INTO MyTable (Col1, Col2)
    SELECT Col1, Col2 FROM @MyTable;
END;
GO</code>

C# 코드:

<code class="language-csharp">using System.Data;
using System.Data.SqlClient;

// ... other code ...

DataTable dt = new DataTable();
dt.Columns.Add("Col1", typeof(int));
dt.Columns.Add("Col2", typeof(string));

// Populate dt with your data here...  e.g.,
//DataRow row = dt.NewRow();
//row["Col1"] = 1;
//row["Col2"] = "Value1";
//dt.Rows.Add(row);


using (SqlConnection con = new SqlConnection("ConnectionString"))
{
    using (SqlCommand cmd = new SqlCommand("MyProcedure", con))
    {
        cmd.CommandType = CommandType.StoredProcedure;
        cmd.Parameters.AddWithValue("@MyTable", dt); //AddWithValue handles type inference
        con.Open();
        cmd.ExecuteNonQuery();
    }
}</code>

이 방법은 데이터베이스 왕복 횟수를 줄여 데이터베이스 삽입 효율성을 크게 향상시켜 더 빠르고 확장 가능한 데이터 처리를 가능하게 합니다.

위 내용은 C#을 사용하여 매개 변수화된 여러 행을 데이터베이스에 효율적으로 삽입하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.