C#의 SQL 삽입 쿼리

Muhammad Maisam Abbas 2024년2월16일
  1. C#에서 단순 쿼리 메서드를 사용하여 SQL 삽입
  2. C#에서 매개 변수가있는 쿼리 메서드를 사용하여 SQL 삽입
C#의 SQL 삽입 쿼리

이 자습서에서는 C#으로 데이터베이스에 레코드를 삽입하는 방법에 대해 설명합니다.

C#에서 단순 쿼리 메서드를 사용하여 SQL 삽입

간단한 쿼리 메서드는 C#의 SQL insert쿼리를 사용하여 데이터베이스 테이블에 데이터를 삽입 할 수 있습니다. 이 방법은 간단하고 구현하기 쉽지만 안전하지 않습니다. 이 방법은 우리 코드가 SQL 주입을 막을 수 없습니다. 다음 코드 예제는 C#의 간단한 쿼리 메서드를 사용하여 데이터베이스 테이블에 데이터를 입력하는 방법을 보여줍니다.

using System;
using System.Data.SqlClient;

namespace sql_insert {
  class Program {
    static void Main(string[] args) {
      string connectionString =
          "Data Source=.\SQLEXPRESS;Initial Catalog=ComputerShop;Integrated Security=True";
      SqlConnection connection = new SqlConnection(@connectionString);
      string query = "INSERT INTO Person (Name,Salary) VALUES('Max','$1200')";
      SqlCommand command = new SqlCommand(query, connection);
      try {
        connection.Open();
        command.ExecuteNonQuery();
        Console.WriteLine("Records Inserted Successfully");
      } catch (SqlException e) {
        Console.WriteLine("Error Generated. Details: " + e.ToString());
      } finally {
        connection.Close();
      }
    }
  }
}

출력:

Records Inserted Successfully

위의 코드는 C#의 간단한 쿼리 메서드를 사용하여 데이터베이스의Person테이블에 데이터를 삽입합니다.

SqlConnection클래스는 데이터베이스와의 연결을 만듭니다. 연결 문자열을 매개 변수로 사용합니다.

SqlCommand클래스는 다음과 같은 SQL 명령을 생성합니다. SQL Server 데이터베이스에 대해 실행됩니다. SqlConnection개체와 SQL 쿼리를 매개 변수로 사용합니다.

connection.open()함수 일부 쿼리를 실행하기 위해 데이터베이스와의 연결을 여는 데 사용됩니다. 데이터베이스에 대한 연결을 열지 않고 쿼리를 실행할 수 없습니다.

마지막으로 command.ExecuteNonQuery()함수은 삽입 쿼리를 실행하는 데 사용됩니다. command.ExecuteNonQuery()함수는 쿼리의 영향을받는 행 수를 반환합니다. 오류가 발생하면command.ExecuteNonQuery()함수는-1을 리턴합니다.

쿼리를 실행 한 후 connection.Close()함수.

C#에서 매개 변수가있는 쿼리 메서드를 사용하여 SQL 삽입

매개 변수화 된 쿼리 메소드는 C#의 매개 변수가있는 SQL insert쿼리를 사용하여 데이터베이스 테이블에 데이터를 삽입하는 데 사용됩니다. 삽입 쿼리에서 필드에 대한 대체 매개 변수를 지정한 다음 해당 대체 매개 변수에 데이터를 입력합니다. 이 방법은 SQL 삽입으로부터 코드를 보호하기 때문에 권장됩니다. 다음 코드 예제는 C#에서 매개 변수가있는 쿼리 메서드를 사용하여 데이터베이스 테이블에 데이터를 입력하는 방법을 보여줍니다.

using System;
using System.Data.SqlClient;

namespace sql_insert {
  class Program {
    static void Main(string[] args) {
      string connectionString =
          "Data Source=.\SQLEXPRESS;Initial Catalog=ComputerShop;Integrated Security=True";
      SqlConnection connection = new SqlConnection(@connectionString);
      string query = "INSERT INTO Products (Name, Salary) VALUES(@Name, @Salary)";
      SqlCommand command = new SqlCommand(query, connection);

      command.Parameters.AddWithValue("@Name", "Max");
      command.Parameters.AddWithValue("@Salary", "$1200");

      try {
        connection.Open();
        command.ExecuteNonQuery();
        Console.WriteLine("Records Inserted Successfully");
      } catch (SqlException e) {
        Console.WriteLine("Error Generated. Details: " + e.ToString());
      } finally {
        connection.Close();
      }
    }
  }
}

출력:

Records Inserted Successfully

위 코드는 C#의 매개 변수화 된 쿼리 메서드를 사용하여 데이터베이스의Person테이블에 데이터를 삽입합니다. 나머지 코드는 이전 예제와 매우 유사합니다. 유일한 차이점은 이번에는insert쿼리 내부에 값을 쓰지 않는다는 것입니다. command.Parameters.AddWithValue()함수.

Muhammad Maisam Abbas avatar Muhammad Maisam Abbas avatar

Maisam is a highly skilled and motivated Data Scientist. He has over 4 years of experience with Python programming language. He loves solving complex problems and sharing his results on the internet.

LinkedIn

관련 문장 - Csharp Database