C#에서 매개변수를 사용하여 저장 프로시저 실행

Haider Ali 2023년10월12일
C#에서 매개변수를 사용하여 저장 프로시저 실행

이 가이드에서는 C#에서 매개변수를 사용하여 저장 프로시저를 실행/호출하는 방법, 즉 저장 프로시저 내부에 매개변수를 전달하는 방법을 배웁니다.

이 컴팩트 가이드에서 처음부터 끝까지 모든 것을 배우게 됩니다. 뛰어들자!

C#에서 매개변수를 사용하여 저장 프로시저 실행

C#에서 매개 변수를 사용하여 저장 프로시저를 호출하는 방법을 이해하려면 저장 프로시저와 관련된 모든 기본 사항을 이해해야 합니다.

그것들은 무엇이며 어떤 목적으로 사용됩니까? 그들의 장점은 무엇입니까? 어떻게 만들고 변경합니까?

C#의 저장 프로시저

단일 실행 계획으로 조합된 Transact-SQL 문의 모음은 저장 프로시저입니다. 데이터베이스 서버는 저장 프로시저라는 코드 블록을 사용합니다. 한 번 컴파일되고 반복적으로 사용할 수 있는 미리 컴파일된 엔터티입니다.

일련의 SQL 문은 저장 프로시저를 사용하여 순차적으로 실행할 수 있습니다. 프로세스에 데이터를 제공하려면 프로시저 매개변수를 사용해야 합니다.

저장 프로시저는 매개변수 매핑 개념을 사용합니다. 프런트 엔드 및 프로시저 매개변수의 이름, 유형 및 방향은 일치해야 하고 프런트 엔드 매개변수 길이는 프로시저 매개변수 길이(매개변수만 매핑할 수 있음)보다 작거나 같아야 합니다.

return 문을 사용하여 프로시저에서 값을 반환합니다.

C#에서 저장 프로시저를 사용하는 이유

데이터베이스에서 데이터에 액세스하려면 일반적으로 select, insertupdate와 같은 SQL 쿼리를 만듭니다. 동일한 쿼리를 자주 사용하는 경우 쿼리를 저장 프로시저로 변환하는 것이 좋습니다.

쿼리를 작성할 때마다 데이터베이스는 쿼리를 구문 분석합니다. 저장 프로시저를 만든 경우 한 번만 구문 분석된 후 N 번 실행할 수 있습니다.

저장된 루틴을 통해 성능을 향상시킬 수도 있습니다. 데이터베이스 서버의 단일 실행 블록인 저장 프로시저는 모든 조건부 논리를 포함합니다.

C#에서 매개변수를 사용하여 저장 프로시저 실행: 코드 예제

다음은 C#에서 매개변수를 사용하여 저장 프로시저를 실행하는 단계입니다.

  • 가장 먼저 해야 할 일은 프로그램 바로 위에 using System.Data.SqlClient;using System.Data; 라이브러리를 추가하는 것입니다. 이를 통해 C# 프로그램에서 저장 프로시저를 만들 수 있습니다.
  • 아래 코드 예제에서는 데이터베이스의 경로를 문자열로 전달하여 저장 프로시저 생성을 시작합니다.
  • 그런 다음 using() 메서드를 사용하여 Connection 객체 con을 만들고 내부에 경로 문자열을 전달했습니다.
  • SqlCommand의 개체를 만들어야 합니다. 이 객체를 사용하여 Connection과 같은 SQL 명령 속성을 활용할 수 있습니다.
  • 그런 다음 명령 유형을 StoredProcedure로 지정해야 합니다.
  • 매개변수가 있는 저장 프로시저를 생성하려면 SqlParameter라는 객체를 만들고 이 객체를 사용하여 전달하려는 매개변수의 이름, 데이터 유형 및 값을 정의해야 합니다.
  • 다음으로 해야 할 일은 방향을 제시하는 것입니다. 입력, 출력 또는 둘 다로 사용할 수 있습니다.
  • 이제 AddWithValue()를 사용하여 이전에 생성한 매개변수 객체를 전달합니다.
  • 이 모든 작업은 try-catch 블록 내에서 수행되어야 합니다. catch 블록 내에서 잡아야 하는 데이터를 가져오는 동안 오류가 발생할 수 있습니다.

예제 코드:

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Data.SqlClient;
using System.Data;
namespace Stored_procedure {
  internal class Program {
    static void Main(string[] args) {
      // connection with sql
      try {
        // string for connection information
        string con_str = "pass your connection path/information";
        // create connection
        using (SqlConnection con = new SqlConnection(con_str)) {
          // create sqlcommand object
          SqlCommand cmd = new SqlCommand();
          cmd.CommandText = "Write the name of your stored prcedure";
          cmd.Connection = con;
          // specify the command type
          cmd.CommandType = CommandType.StoredProcedure;

          // create object of sqlparameter class
          SqlParameter param = new SqlParameter {
            // set the name of parameter
            ParameterName = "Write your parameter name",
            // set the type of parameter
            SqlDbType = SqlDbType.Int, Value = 2,
            // you can specify the direction of parameter input/output/inputoutput
            Direction = ParameterDirection.InputOutput
          };
          // adding parameter in command
          cmd.Parameters.AddWithValue(param);
          // open connection of db
          con.Open();
          // executing the query
          cmd.ExecuteNonQuery();
        }
      } catch (Exception e) {
        Console.WriteLine(e.Message);
      }
    }
  }
}
작가: Haider Ali
Haider Ali avatar Haider Ali avatar

Haider specializes in technical writing. He has a solid background in computer science that allows him to create engaging, original, and compelling technical tutorials. In his free time, he enjoys adding new skills to his repertoire and watching Netflix.

LinkedIn