집 >데이터 베이스 >MySQL 튜토리얼 >테이블 반환 매개 변수를 사용하여 C#에서 매개 변수가 있는 변수가 있는 여러 행을 효율적으로 삽입하는 방법은 무엇입니까?
이 가이드에서는 C#에서 매개 변수가 있는 단일 쿼리를 사용하여 SQL Server 데이터베이스(2008 이상)에 여러 행을 효율적으로 삽입하는 방법을 보여줍니다. 테이블 반환 매개변수를 사용하는 이 기술은 개별 삽입 문에 비해 성능을 크게 향상시킵니다.
삽입할 데이터 구조를 나타내기 위해 SQL Server에서 사용자 정의 테이블 유형을 생성하는 것부터 시작하세요.
<code class="language-sql">CREATE TYPE MyTableType AS TABLE ( Col1 int, Col2 varchar(20) ) GO</code>
다음으로 이 사용자 정의 테이블 유형을 매개변수로 받아들이는 저장 프로시저를 만듭니다.
<code class="language-sql">CREATE PROCEDURE MyProcedure ( @MyTable dbo.MyTableType READONLY -- READONLY is crucial for table-valued parameters ) AS BEGIN INSERT INTO MyTable (Col1, Col2) SELECT Col1, Col2 FROM @MyTable; END; GO</code>
C# 코드에서 삽입하려는 데이터를 보관할 DataTable
을 구성합니다.
<code class="language-csharp">DataTable dt = new DataTable(); dt.Columns.Add("Col1", typeof(int)); dt.Columns.Add("Col2", typeof(string)); // Populate the DataTable with your data here... For example: DataRow row1 = dt.NewRow(); row1["Col1"] = 1; row1["Col2"] = "Value 1"; dt.Rows.Add(row1); // ...add more rows as needed...</code>
마지막으로 SqlCommand
:
<code class="language-csharp">using (SqlConnection con = new SqlConnection("YourConnectionString")) { using (SqlCommand cmd = new SqlCommand("MyProcedure", con)) { cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.AddWithValue("@MyTable", dt); //AddWithValue handles SqlDbType automatically con.Open(); cmd.ExecuteNonQuery(); } }</code>
이 방법은 매개변수화된 값이 있는 여러 행을 삽입하는 매우 효율적인 방법을 제공하여 SQL 주입 취약점을 방지하고 개별 INSERT
문에 비해 데이터베이스 성능을 향상시킵니다. "YourConnectionString"
을 실제 연결 문자열로 바꿔야 합니다.
위 내용은 테이블 반환 매개 변수를 사용하여 C#에서 매개 변수가 있는 변수가 있는 여러 행을 효율적으로 삽입하는 방법은 무엇입니까?의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!