728x90
1. 강의 개요
이번 강의에서는 Windows Forms에서 데이터를 표시하고 데이터베이스와 상호작용하는 데 유용한 DataGridView와 ADO.NET을 학습합니다.
- DataGridView: 데이터를 테이블 형태로 표시하며, 편집, 삭제, 추가 등 다양한 기능을 제공합니다.
- ADO.NET: 데이터베이스와 상호작용하기 위한 .NET Framework의 데이터 액세스 기술입니다.
2. 학습 목표
- DataGridView를 사용해 데이터를 테이블 형태로 표시.
- ADO.NET을 사용해 데이터베이스에서 데이터를 읽고 표시.
- DataGridView와 ADO.NET을 결합하여 CRUD(Create, Read, Update, Delete) 작업 구현.
3. DataGridView (데이터 그리드 뷰)
DataGridView란?
DataGridView는 데이터를 테이블 형태로 표시하고 편집할 수 있는 컨트롤입니다.
- 데이터 소스에 연결하거나 수동으로 데이터를 추가 가능.
- 사용자 입력 및 수정 기능 제공.
주요 속성
속성 설명 예제
DataSource | DataGridView의 데이터 소스 설정 | dataGridView1.DataSource = dataTable; |
Columns | 열 컬렉션 관리 | dataGridView1.Columns.Add("ID", "아이디"); |
주요 이벤트
이벤트 설명 예제
CellClick | 셀 클릭 시 발생하는 이벤트 | dataGridView1.CellClick += DataGridView1_CellClick; |
4. ADO.NET
ADO.NET이란?
ADO.NET은 데이터베이스와 상호작용하기 위한 클래스와 메서드를 제공하는 .NET 기술입니다.
- 데이터를 연결(Connection)하거나, 명령(Command)을 실행하여 데이터베이스 작업 수행.
주요 클래스
클래스 설명 예제
SqlConnection | 데이터베이스 연결을 관리 | new SqlConnection(connectionString); |
SqlCommand | 데이터베이스 명령 실행 | new SqlCommand(query, connection); |
SqlDataAdapter | 데이터베이스 데이터를 DataTable로 가져오기 | new SqlDataAdapter(command); |
5. 실습: DataGridView와 ADO.NET 사용하기
요구사항
- DataGridView를 사용해 데이터베이스의 데이터를 테이블 형태로 표시.
- "새 데이터 추가" 버튼 클릭 시 데이터를 추가.
- "선택된 데이터 삭제" 버튼 클릭 시 선택한 행 삭제.
폼 구성
컨트롤 타입 이름 텍스트 위치 크기
DataGridView | dataGridView1 | (없음) | 상단 | (400 x 300) |
Button | btnAdd | "새 데이터 추가" | 하단 왼쪽 | (150 x 30) |
Button | btnDelete | "선택된 데이터 삭제" | 하단 오른쪽 | (150 x 30) |
코드 작성
Form1.cs
using System;
using System.Data;
using System.Data.SqlClient;
using System.Windows.Forms;
namespace WindowsFormsApp1
{
public partial class Form1 : Form
{
private string connectionString = "Server=YOUR_SERVER;Database=YOUR_DATABASE;Trusted_Connection=True;";
private DataTable dataTable = new DataTable();
public Form1()
{
InitializeComponent();
InitializeDataGridView();
LoadData();
}
private void InitializeDataGridView()
{
dataGridView1.DataSource = dataTable;
dataGridView1.SelectionMode = DataGridViewSelectionMode.FullRowSelect;
dataGridView1.MultiSelect = false;
}
private void LoadData()
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
try
{
connection.Open();
string query = "SELECT * FROM YourTable";
SqlDataAdapter adapter = new SqlDataAdapter(query, connection);
dataTable.Clear();
adapter.Fill(dataTable);
}
catch (Exception ex)
{
MessageBox.Show($"데이터를 불러오는 중 오류가 발생했습니다: {ex.Message}");
}
}
}
private void BtnAdd_Click(object sender, EventArgs e)
{
using (SqlConnection connection = new SqlConnection(connectionString))
{
try
{
connection.Open();
string query = "INSERT INTO YourTable (Column1, Column2) VALUES (@Value1, @Value2)";
using (SqlCommand command = new SqlCommand(query, connection))
{
command.Parameters.AddWithValue("@Value1", "새 데이터");
command.Parameters.AddWithValue("@Value2", "값 2");
command.ExecuteNonQuery();
}
MessageBox.Show("데이터가 추가되었습니다.");
LoadData();
}
catch (Exception ex)
{
MessageBox.Show($"데이터 추가 중 오류가 발생했습니다: {ex.Message}");
}
}
}
private void BtnDelete_Click(object sender, EventArgs e)
{
if (dataGridView1.SelectedRows.Count > 0)
{
int selectedId = Convert.ToInt32(dataGridView1.SelectedRows[0].Cells[0].Value);
using (SqlConnection connection = new SqlConnection(connectionString))
{
try
{
connection.Open();
string query = "DELETE FROM YourTable WHERE ID = @ID";
using (SqlCommand command = new SqlCommand(query, connection))
{
command.Parameters.AddWithValue("@ID", selectedId);
command.ExecuteNonQuery();
}
MessageBox.Show("데이터가 삭제되었습니다.");
LoadData();
}
catch (Exception ex)
{
MessageBox.Show($"데이터 삭제 중 오류가 발생했습니다: {ex.Message}");
}
}
}
else
{
MessageBox.Show("삭제할 데이터를 선택하세요.");
}
}
}
}
6. 실행 결과
- DataGridView
- 데이터베이스의 데이터가 테이블 형태로 표시됩니다.
- 새 데이터 추가
- "새 데이터 추가" 버튼을 클릭하면 새 데이터가 추가되고 DataGridView에 갱신됩니다.
- 선택된 데이터 삭제
- 행을 선택한 후 "선택된 데이터 삭제" 버튼을 클릭하면 해당 데이터가 삭제됩니다.
7. 주요 개념 요약
- DataGridView는 데이터를 테이블 형식으로 표시하고, DataSource를 사용해 데이터를 바인딩.
- ADO.NET을 통해 데이터베이스와 상호작용하며 데이터를 읽고 수정, 삭제 가능.
- DataGridView와 ADO.NET을 결합하여 데이터 표시 및 CRUD 작업을 수행.
728x90
'Study > C#' 카테고리의 다른 글
C# Windows Forms 강의 14편: SplitContainer와 TabControl로 동적 레이아웃 구성 (0) | 2025.02.17 |
---|---|
C# Windows Forms 강의 13편: Chart 컨트롤로 데이터 시각화 (0) | 2025.02.16 |
C# Windows Forms 강의 11편: Timer와 BackgroundWorker (0) | 2025.02.14 |
C# Windows Forms 강의 10편: TreeView와 ListView (0) | 2025.02.13 |
C# Windows Forms 강의 9편: TabControl과 ProgressBar (0) | 2025.02.12 |