C#에서 SQL 데이터베이스 만들기

Saad Aslam 2023년10월12일
C#에서 SQL 데이터베이스 만들기

이 문서에서는 데이터를 읽고 쓸 수 있도록 SQL 데이터베이스 및 그 안에 테이블을 설정하는 방법에 대한 개요를 제공합니다.

SQL 데이터베이스 생성 단계

다음은 SQL 데이터베이스를 만드는 단계입니다.

  • 시작하려면 SQL Management Studio를 실행하십시오.
  • 연결하려면 (LocalDB)MSSQLLocalDB와 같은 서버 이름을 입력한 다음 연결 버튼을 클릭해야 합니다.
  • 새 데이터베이스를 생성하려면 왼쪽 패널에서 데이터베이스 아이콘을 마우스 오른쪽 버튼으로 클릭한 다음 컨텍스트 메뉴에서 새 데이터베이스를 선택합니다. 그리고 마지막으로 이름을 지어주세요.
  • 그런 다음 드롭다운 메뉴에서 새 쿼리를 선택한 후 다음과 같이 쿼리를 작성합니다.
    use readwrite
    create table mydata (id int primary key identity(1,1),myname varchar(50),Email varchar(50),phone varchar(50))
    select * from mydata
    

Microsoft Visual Studio에서 Windows Form 만들기

Microsoft Visual Studio에서 첫 번째 단계는 새 프로젝트를 만드는 것입니다. 프로젝트 유형이라고 표시된 드롭다운 옵션에서 Windows Form Application C#을 선택합니다.

두 개의 파일을 포함하는 양식을 생성합니다. 하나는 form.cs이고 다른 하나는 form.cs (Design)입니다. 디자인 파일에 3개의 레이블을 추가하고 nameTxt, emailTxtphoneTxt로 이름을 지정합니다.

Name, EmailPhone#이라는 단어로 각각을 채웁니다. 프로젝트를 저장합니다.

두 개의 버튼을 만들고 getDatasaveData라는 이름을 지정해야 합니다. 버튼에 제공된 텍스트 상자에 데이터 저장 및 데이터 가져오기를 입력합니다.

또한 데이터 그리드 보기가 양식에 추가되어야 합니다. 이 그리드 보기는 데이터베이스의 기존 테이블에서 데이터를 가져와 테이블의 모든 내용을 출력해야 합니다.

다음은 방금 완성한 양식의 시각적 표현입니다.

C# SQL 데이터베이스 만들기 - 빈 양식

기능 구현

먼저 SqlDataAdapter 유형의 변수를 만들고 da라는 이름을 지정합니다. 이것은 데이터베이스에 저장된 테이블에서 데이터를 가져오는 데 사용하는 것입니다.

SqlDataAdapter da = new SqlDataAdapter(
    "SELECT \* FROM mydata",
    @"Data Source=(LocalDB)\MSSQLLocalDB ; Initial Catalog=readwrite; Integrated Security=True");

다음으로 con이라는 이름이 지정될 SqlConnection 유형의 객체로 데이터베이스 연결을 구축합니다. 여기에서 데이터 소스, 데이터베이스 이름 및 통합 보안을 제공합니다.

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

이제 저장 버튼에 대한 코드를 만들 차례입니다. 시작하려면 기능 수행을 시작할 수 있도록 데이터베이스와의 연결을 시작합니다.

텍스트 상자에서 데이터를 수집한 다음 SqlCommand 개체에 연결할 삽입 쿼리를 사용하여 제공된 데이터베이스에 저장합니다. 그런 다음 데이터가 성공적으로 입력되었는지 확인하는 대화 상자가 나타납니다.

private void Savebtn_Click(object sender, EventArgs e) {
  con.Open();
  cmd = new SqlCommand("insert into mydata values ('" + nametxt.Text + "','" + emailtxt.Text +
                           "','" + phonetxt.Text + "')",
                       con);
  cmd.ExecuteNonQuery();
  MessageBox.Show("Data is Saved");
  con.Close();
  nametxt.Clear();
  emailtxt.Clear();
  phonetxt.Clear();
}

마지막으로 데이터를 dataGridView로 가져오는 코드를 작성합니다. 이렇게 하려면 DataSet 유형의 개체를 빌드한 다음 데이터베이스에서 가져온 데이터로 채웁니다.

private void Getbtn_Click(object sender, EventArgs e) {
  DataSet ds = new DataSet();
  da.Fill(ds, "mydata");
  dataGridView1.DataSource = ds.Tables["mydata"].DefaultView;
}

소스 코드:

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

namespace Saad_artilce_final_version {
  public partial class Form1 : Form {
    SqlDataAdapter da = new SqlDataAdapter(
        "SELECT * FROM mydata",
        @"Data Source=(LocalDB)\MSSQLLocalDB ; Initial Catalog=readwrite; Integrated Security=True");

    SqlConnection con = new SqlConnection(
        @"Data Source=(LocalDB)\MSSQLLocalDB ; Initial Catalog=readwrite; Integrated Security=True");
    SqlCommand cmd;
    public Form1() {
      InitializeComponent();
    }

    private void Savebtn_Click(object sender, EventArgs e) {
      con.Open();
      cmd = new SqlCommand("insert into mydata values ('" + nametxt.Text + "','" + emailtxt.Text +
                               "','" + phonetxt.Text + "')",
                           con);
      cmd.ExecuteNonQuery();
      MessageBox.Show("Data is Saved");
      con.Close();
      nametxt.Clear();
      emailtxt.Clear();
      phonetxt.Clear();
    }

    private void Getbtn_Click(object sender, EventArgs e) {
      DataSet ds = new DataSet();
      da.Fill(ds, "mydata");
      dataGridView1.DataSource = ds.Tables["mydata"].DefaultView;
    }
  }
}

출력:

C# SQL 데이터베이스 만들기 - 대화 상자

C# SQL 데이터베이스 생성 - 데이터 가져오기

작가: Saad Aslam
Saad Aslam avatar Saad Aslam avatar

I'm a Flutter application developer with 1 year of professional experience in the field. I've created applications for both, android and iOS using AWS and Firebase, as the backend. I've written articles relating to the theoretical and problem-solving aspects of C, C++, and C#. I'm currently enrolled in an undergraduate program for Information Technology.

LinkedIn

관련 문장 - Csharp SQL