C#의 SQL 연결 문자열

Muhammad Zeeshan 2024년2월15일
  1. C#의 데이터베이스 연결 기본 사항
  2. C#의 SQL 연결 문자열 예
C#의 SQL 연결 문자열

이 자습서에서는 C# 프로그래밍 언어의 연결 문자열 기능을 사용하여 다양한 기능을 수행하는 방법을 알아봅니다.

모든 프로그래밍 언어는 데이터베이스에서 데이터를 가져올 수 있어야 합니다. 데이터베이스 작업 능력은 모든 프로그래밍 언어의 절대적인 요구 사항입니다.

이는 C#에서도 마찬가지입니다. 다양한 데이터베이스와 호환됩니다.

Oracle 및 Microsoft SQL Server를 비롯한 많은 데이터베이스를 사용할 수 있습니다. 시작하기 전에 데이터베이스 연결의 기본 사항을 명확하게 이해해야 합니다.

C#의 데이터베이스 연결 기본 사항

C# 및 .Net은 대부분의 데이터베이스와 호환되며 Oracle 및 Microsoft SQL Server가 가장 일반적인 예입니다. 그러나 모든 데이터베이스로 작업하는 방법론은 모든 데이터베이스에서 거의 유사한 패턴을 따릅니다.

다음은 모든 데이터베이스에서 공유하는 데이터베이스로 작업하는 동안 적용할 수 있는 몇 가지 원칙입니다.

  1. 연결 문자열 - 연결은 데이터베이스에 포함된 데이터로 작업할 때 취해야 할 분명한 초기 단계입니다. 아래 나열된 매개변수는 데이터베이스 연결의 필수 부분입니다.

    C#이 연결 문자열을 이해하기 위해서는 연결 문자열에 대한 정확한 정보를 제공해야 합니다. 다음 요소는 연결 문자열의 구성 요소를 구성합니다.

    1.1 데이터 소스 - 데이터 소스라고도 하는 데이터베이스가 저장된 서버의 이름입니다. 특정 인스턴스에서는 (LocalDB)\MSSQLLocalDB로 지정된 컴퓨터에 저장됩니다.
    1.2 초기 카탈로그 - 데이터베이스의 이름은 초기 카탈로그를 기준으로 사용하여 결정됩니다. 연결해야 하는 데이터베이스의 이름은 고려해야 할 첫 번째 중요한 측면입니다.

    주어진 시간에 하나의 연결로 하나의 데이터베이스에만 액세스할 수 있습니다.

  2. SQL 명령 - 사용자는 C#에서 SqlCommand를 통해 데이터베이스에 명령을 쿼리하고 보낼 수 있는 기능이 제공됩니다. SQL 명령은 SQL 연결을 나타내는 개체에서 제공합니다.

    ExecuteReader는 쿼리 결과에 사용되는 메서드이고 ExecuteNonQueryinsert, updatedelete 명령에 사용되는 메서드입니다. 예를 들어 다음 예제에서 사용된 연결 문자열은 다음과 같습니다.

SqlConnection con = new SqlConnection(
    @"Data Source=(LocalDB)\MSSQLLocalDB ; Initial Catalog= ConStringExample; Integrated Security=True");

C#의 SQL 연결 문자열 예

이제 데이터베이스에 대한 연결을 설정하기 위해 유지해야 하는 간단한 예를 살펴보겠습니다. 이 데모에서는 연결 문자열을 사용하여 데이터베이스에 연결한 다음 단추를 사용하여 NameDesignationConStringExample이라는 데이터베이스에 삽입합니다.

  1. 시작하려면 새 Windows Form 프로젝트를 만들고 원하는 이름을 지정합니다. 이 예에서는 이름을 chsarpConnectionStringByZeeshan으로 지정합니다.

    새 Windows Form 만들기

  2. 두 개의 레이블을 사용한 다음 NameDesignation 레이블이 있고 nametextBoxdesigtextBox 필드로 명명된 텍스트 상자를 활용합니다.

    winform에 대한 레이블 및 텍스트 상자

  3. 레이블과 텍스트 상자를 사용한 후 다음 단계는 데이터 추가 레이블과 addbtn이라는 이름이 있는 버튼을 포함하는 것입니다. 이 버튼을 클릭하면 데이터가 데이터베이스에 추가됩니다.

    winform에 버튼 추가

양식이 철저히 준비되었으므로 이제 데이터 추가 버튼에 대한 코드를 생성할 차례입니다.

  1. 시작하려면 다음 라이브러리를 가져와야 합니다.

    using System;
    using System.Collections.Generic;
    using System.ComponentModel;
    using System.Data;
    using System.Data.SqlClient;
    using System.Drawing;
    using System.Linq;
    using System.Text;
    using System.Threading.Tasks;
    using System.Windows.Forms;
    
  2. 데이터베이스와의 연결을 설정하기 위해 아래 제공된 연결 문자열을 활용하여 데이터베이스 간의 연결을 생성합니다.

    SqlConnection con = new SqlConnection(
        @"Data Source=(LocalDB)\MSSQLLocalDB ; Initial Catalog= ConStringExample; Integrated Security=True");
    
  3. 이제 SqlCommand 유형의 개체를 생성하고 cmd라는 이름을 지정합니다.

    SqlCommand cmd;
    
  4. 데이터 추가 버튼을 두 번 클릭합니다. 이렇게 하면 코드를 작성할 새 이벤트가 생성됩니다.

    버튼 이벤트 추가

  5. 이제 SqlCommand를 사용하고 준비한 insert 쿼리를 매개변수로 전달합니다. 이렇게 하면 제공된 테이블에 데이터가 삽입됩니다.

    SqlCommand cmd = new SqlCommand("insert into Data1 (Name, Designation) values ('" +
                                        nametextBox.Text + "','" + desigtextBox.Text + "')",
                                    con);
    cmd.ExecuteNonQuery();
    
  6. 데이터를 성공적으로 삽입하면 데이터가 삽입되었다는 메시지가 표시됩니다.

    MessageBox.Show("Data inserted successfully");
    
  7. 마지막 단계에서는 연결을 닫고 텍스트 상자를 지웁니다.

    con.Close();
    nametextBox.Clear();
    desigtextBox.Clear();
    

완전한 소스 코드:

using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Data.SqlClient;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Windows.Forms;

namespace chsarpConnectionStringByZeeshan {
  public partial class Form1 : Form {
    SqlConnection con = new SqlConnection(
        @"Data Source=(LocalDB)\MSSQLLocalDB ; Initial Catalog= ConStringExample; Integrated Security=True");
    SqlCommand cmd;

    public Form1() {
      InitializeComponent();
    }

    private void addbtn_Click(object sender, EventArgs e) {
      con.Open();
      SqlCommand cmd = new SqlCommand("insert into Data1 (Name, Designation) values ('" +
                                          nametextBox.Text + "','" + desigtextBox.Text + "')",
                                      con);
      cmd.ExecuteNonQuery();
      MessageBox.Show("Data inserted successfully");
      con.Close();
      nametextBox.Clear();
      desigtextBox.Clear();
    }
  }
}

출력:

C#의 SQL 연결 문자열

Muhammad Zeeshan avatar Muhammad Zeeshan avatar

I have been working as a Flutter app developer for a year now. Firebase and SQLite have been crucial in the development of my android apps. I have experience with C#, Windows Form Based C#, C, Java, PHP on WampServer, and HTML/CSS on MYSQL, and I have authored articles on their theory and issue solving. I'm a senior in an undergraduate program for a bachelor's degree in Information Technology.

LinkedIn