728x90
SqlConnection 클래스
SQL Server를 접속하기 위한 클래스.
SQL 서버를 사용하려면 클라이언트 프로그램이 먼저 서버와 접속해야 함.
→ 접속 시 사용하는 Connection String 필요.
→ 서버 명, 인증 방법, 초기 DB명 등 지정.
예시)
//1
string strConn1 = "Data Source=[서버 주소];Initial Catalog=[DB명];Integrated Security=SSPI;";
//2
string strConn2 = "Data Source=[서버 주소];Initial Catalog=[DB명];User ID=[아이디];Password=[비밀번호];";
SqlConnection conn = new SqlConnection(strConn);
conn.Open();
...
conn.Close();
SqlCommand 클래스
SQL 서버에 어떤 명령을 내리기 위해 사용하는 클래스.
SELECT, INSERT, UPDATE, DELETE와 같은 DML 문장을 실행할 때 사용.
예시)
string strConn = "Data Source= ... ;";
string sql = "SELECT * FROM Table1";
using(SqlConnection conn = new SqlConnection(strConn))
{
conn.Open();
SqlCommand cmd = new SqlCommand(sql, conn);
SqlDataReader rdr = cmd.ExecuteReader();
}
SqlDataAdapter 클래스
SQL Server에서 데이터를 클라이언트로 가져온 후 연결을 끊고(Disconnected mode) 데이터를 사용할 수 있게 하는 클래스.
가져온 데이터를 메모리상의 데이터 객체인 DataSet에 할당.
→ DataSet 객체는 다시 컨트롤(WinForms의 DataGridView 컨트롤)에 데이터 바인딩 소스로 사용할 수 있다.
예시)
string strConn = "Data Source= ... ;";
public DataSet GetProduct()
{
DataSet ds = new DataSet();
SqlConnection conn = new SqlConnection(strConn);
conn.Open();
string sql = "SELECT * FROM Table1";
//SqlDataAdapter 초기화
SqlDataAdapter adapter = new SqlDataAdapter(sql, conn);
//Fill 메서드: 결과 DataSet을 리턴 받음.
adapter.Fill(ds);
conn.Close();
return ds;
}
using 키워드
해당 블럭이 끝나면 자동으로 Dispose() 메서드를 호출.
Unmanaged Resource를 사용하는 모든 클래스는 IDisposable 인터페이스를 구현하기 때문에 using 문을 사용하여 자동으로 리소스를 해지하면 편리하다.
→ SqlConnection, SqlCommand, SqlDataReader가 이에 해당 됨.
using(SqlConnection conn = new SqlConnection(strConn))
{
conn.Open();
...
}
참고 사이트)
https://www.csharpstudy.com/Data/SQL-connection.aspx
https://www.csharpstudy.com/Data/SQL-command.aspx
https://www.csharpstudy.com/Data/SQL-dataadapter.aspx
728x90
반응형
'개발 공부 > C# 학습' 카테고리의 다른 글
[C# 학습] OleDbConnection, OleDbCommand, OleDbDataAdapter, OleDbDataReader (0) | 2022.10.24 |
---|---|
[C# 학습] .NET Framework 데이터 공급자 (0) | 2022.10.24 |
[C# 학습] 데이터베이스 엔진 인증 모드(Windows 인증 방식, SQL 인증 방식) (0) | 2022.10.24 |
[C# 학습] Microsoft.ACE.OLEDB.12.0 공급자는 로컬 컴퓨터에 등록할 수 없습니다. (오류 해결) (0) | 2022.10.24 |
[C# 학습] 엑셀 파일 생성 및 저장하기(코드, Marshal 클래스, 에러 해결) (0) | 2022.10.20 |