>  기사  >  백엔드 개발  >  SqlParameter를 사용하는 C#의 매개변수화된 쿼리

SqlParameter를 사용하는 C#의 매개변수화된 쿼리

WBOY
WBOY원래의
2024-02-18 22:02:07421검색

SqlParameter를 사용하는 C#의 매개변수화된 쿼리

C#에서 SqlParameter의 역할과 사용법

C# 개발에서 데이터베이스와 상호 작용하는 것은 일반적인 작업 중 하나입니다. 데이터의 보안과 유효성을 보장하기 위해 매개변수화된 쿼리를 사용하여 SQL 주입 공격을 방지해야 하는 경우가 많습니다. SqlParameter는 매개변수화된 쿼리를 작성하는 데 사용되는 C#의 클래스로, 데이터베이스 쿼리에서 매개변수를 처리하는 안전하고 편리한 방법을 제공합니다.

SqlParameter의 역할
SqlParameter 클래스는 주로 SQL 문에 매개변수를 추가하는 데 사용됩니다. 주요 기능은 다음과 같습니다.

  1. SQL 주입 공격 방지: SqlParameter를 사용하면 매개변수 값을 미리 이스케이프할 수 있으며 데이터베이스 쿼리를 실행할 때 매개변수 값이 SQL 문의 일부로 해석되지 않도록 할 수 있습니다.
  2. 성능 향상: 데이터베이스 쿼리에서 쿼리 계획은 일반적으로 성능 향상을 위해 쿼리를 캐시합니다. SqlParameter를 사용하는 경우 동일한 쿼리 문을 한 번만 컴파일하면 반복적으로 사용할 수 있습니다.
  3. 다양한 데이터 유형 및 크기 지원: SqlParameter는 문자열, 정수, 날짜 등과 같은 다양한 일반 데이터 유형을 지원하며 필요에 따라 매개변수의 크기, 정밀도 및 소수점 자리를 설정할 수 있습니다.

SqlParameter 사용
아래에서는 SqlParameter를 사용하여 매개변수화된 쿼리를 작성하는 방법을 보여주는 예를 사용합니다.

직원 ID, 이름, 급여 정보가 포함된 "Employees"라는 테이블이 있다고 가정해 보겠습니다. 급여가 지정된 금액보다 많은 직원 정보를 쿼리해야 합니다. 다음은 SqlParameter를 사용한 코드 예제입니다.

string queryString = "SELECT EmployeeID, FirstName, LastName FROM Employees WHERE Salary > @salary";
using (SqlConnection connection = new SqlConnection(connectionString))
{
    SqlCommand command = new SqlCommand(queryString, connection);
    command.Parameters.Add("@salary", SqlDbType.Decimal).Value = 5000; // 设置参数名称、类型和值

    connection.Open();
    SqlDataReader reader = command.ExecuteReader();

    while (reader.Read())
    {
        int employeeId = (int)reader["EmployeeID"];
        string firstName = reader["FirstName"].ToString();
        string lastName = reader["LastName"].ToString();

        Console.WriteLine($"Employee ID: {employeeId}, Name: {firstName} {lastName}");
    }

    reader.Close();
}

위 예제에서는 먼저 매개 변수 이름 "@salary"를 포함하는 쿼리 문자열을 생성합니다. 그런 다음 SqlConnection 및 SqlCommand를 사용하여 데이터베이스 연결 및 쿼리 명령 개체를 만들었습니다.

다음으로 command.Parameters.Add 메서드를 호출하여 쿼리 명령에 매개변수를 추가합니다. 여기서는 매개변수의 이름, 유형 및 값을 지정합니다. 이 예에서는 SqlDbType.Decimal을 매개변수 유형으로 사용하고 매개변수 값을 5000으로 설정합니다. command.Parameters.Add方法,我们向查询命令中添加了一个参数。在这里,我们指定了参数的名称、类型和值。在这个例子中,我们使用SqlDbType.Decimal作为参数类型,并将参数值设置为5000。

最后,我们打开数据库连接,并执行查询命令。通过调用command.ExecuteReader

마지막으로 데이터베이스 연결을 열고 쿼리 명령을 실행합니다. command.ExecuteReader를 호출하여 쿼리 결과를 가져오고 SqlDataReader를 사용하여 결과를 한 줄씩 읽습니다. 루프에서는 열 이름을 통해 각 직원의 ID와 이름을 가져와 콘솔에 출력합니다.


요약

SqlParameter를 사용하면 매개변수화된 쿼리를 효과적으로 구축할 수 있어 데이터베이스 쿼리의 보안과 성능이 향상됩니다. 매개변수의 이름, 유형, 값을 설정하면 SQL 문에 매개변수를 쉽게 추가하고 잠재적인 SQL 주입 공격을 예방할 수 있습니다. 이 기사가 C#에서 SqlParameter의 역할과 사용법을 이해하는 데 도움이 되기를 바랍니다. 🎜

위 내용은 SqlParameter를 사용하는 C#의 매개변수화된 쿼리의 상세 내용입니다. 자세한 내용은 PHP 중국어 웹사이트의 기타 관련 기사를 참조하세요!

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