소개
ADO.NET은 .NET 플랫폼에서 데이터베이스 작업을 처리하는 모듈들의 총칭입니다.
이를 통해 데이터베이스에 접근해 생성, 삭제, 수정, 조회 등 기본 작업을 수행할 수 있으며 SQL 구문 실행, SQL 함수 호출, 저장 프로시저 실행도 가능합니다.
대부분의 대형 비즈니스 시스템은 데이터베이스에 의존합니다. 데이터를 영구적으로 저장하고 빠른 조회 성능이 필요하다면 데이터베이스를 사용해야 합니다.
ADO.NET 핵심에는 데이터베이스 작업 메서드가 캡슐화된 여러 객체가 제공됩니다:
- Connection:데이터베이스와의 연결을 설정
- Command:SQL 관련 명령을 실행
- DataSet:메모리 상의 데이터 집합으로 데이터베이스의 추상 계층입니다. DataSet을 다루는 것은 오프라인 데이터베이스를 다루는 것과 유사하며 내부에 DataTable(데이터 테이블), DataRow(테이블의 단일 레코드)를 포함합니다.
- DataReader:앞으로만 읽는 읽기 전용 데이터 판독기
- DataAdapter:데이터 어댑터
ADO.NET을 제대로 이해해야 완성도 높은 비즈니스 시스템을 개발할 수 있습니다. 웹사이트 등 애플리케이션 역시 데이터베이스에 크게 의존하므로 꼼꼼하게 학습할 것을 권장합니다.
EF, iBatis, NHibernate, Linq to Entities 같은 ORM 프레임워크는 전부 내부적으로 ADO.NET 위에서 구현됩니다. ADO.NET을 기반으로 직접 ORM 프레임워크를 만들 수도 있습니다.
데이터베이스 연결
Connection은 프로그램과 데이터베이스 사이의 연결을 만들며 모든 데이터베이스 작업의 통로 역할을 합니다.
.NET은 SqlConnection 클래스를 통해 데이터베이스 연결을 구현합니다. 네임스페이스는 System.Data.SqlClient이고 어셈블리는 System.Data.dll입니다.
데이터베이스와 상호작용하는 대부분의 타입이 이 dll에 포함되어 있습니다.
연결을 열기 전에 데이터베이스 연결 문자열을 준비해야 하며, SqlConnection 객체를 인스턴스화할 때 이 문자열을 전달합니다.
SqlConnection conn = new SqlConnection(connectionString);Code language: JavaScript (javascript)
연결 문자열은 단순 문자열이며 string 타입으로 보관합니다.
두 가지 인증 방식의 연결 문자열 예시
- SA 계정 로그인(SQL Server 인증)
"Data Source=.;Initial Catalog=데이터베이스이름;User ID=sa;pwd=비밀번호;"Code language: JSON / JSON with Comments (json)
- Windows 인증 로그인
Data Source=.;Initial Catalog=데이터베이스이름;Integrated Security=TrueCode language: PHP (php)
연결 문자열은 여러 설정 항목으로 구성되며 영문 세미콜론으로 구분하고 키=값 형식을 따릅니다.
매개변수 설명:
Data Source:데이터베이스 서버 주소. 로컬 데이터베이스는.,localhost,127.0.0.1을 사용하고 원격 서버는 IP나 도메인을 입력합니다.Initial Catalog:대상 데이터베이스 이름User ID:데이터베이스 로그인 계정pwd:데이터베이스 로그인 비밀번호
참고:
User ID와pwd는 필수 항목이 아닙니다. Windows 인증 모드를 사용할 때Integrated Security=True를 설정하면 통합 보안 인증이 활성화되어 계정과 비밀번호를 입력할 필요가 없습니다.
C#에서 데이터베이스 연결하는 방법
private void button1_Click(object sender, EventArgs e)
{
string connectionString = "Data Source=.;Initial Catalog=db;User ID=sa;pwd=123321;";
// using 문 안에서 연결 객체를 생성하면 코드 블록 종료 시 자동으로 리소스가 해제되므로 수동 Close() 호출 불필요
using (SqlConnection conn = new SqlConnection(connectionString))
{
// 데이터베이스 연결 열기
conn.Open();
// 여기에 데이터베이스 작업 코드를 작성
}
}Code language: JavaScript (javascript)
설명
conn.Open():데이터베이스 연결을 엽니다. 실제 네트워크 연결이 생성되려면 이 메서드를 반드시 호출해야 합니다.using구문의 장점:using 코드 블록 범위를 벗어나면 자동으로 리소스가 해제되고 연결이 닫혀 연결 누수를 방지합니다.- using을 사용하지 않는다면 작업이 끝난 뒤 수동으로
conn.Close()를 호출해 연결을 닫아야 합니다.
기타 사용 방식
//conn.Open(); // 연결 열기
//conn.Close(); // 수동으로 연결 닫기
//conn.ConnectionString = connectionString; // 연결 문자열 동적 할당
//conn.ConnectionString = ""; // 연결 문자열 비우기Code language: JSON / JSON with Comments (json)
소개 및 연결