C#
This presentation is the property of its rightful owner.
Sponsored Links
1 / 23

C# 에서 데이터베이스 연동 방법 PowerPoint PPT Presentation


  • 298 Views
  • Uploaded on
  • Presentation posted in: General

C# 에서 데이터베이스 연동 방법. 1. ADO.NET 데이터 공급자 소개. SQL Server 2005. C# 응용 프로그램. ADO 라이브러리. Stored DB. 1.1 ADO.NET 데이터 공급자의 개요. C# 에서 ADO 이용한 DB 연동. 1.1 ADO.NET 데이터 공급자의 개요 ( 계속 ). Microsoft SQL Server, OLE DB, XML 등의 데이터 원본에 대한 일관적인 접근방법을 제공 ADO.NET 데이터 공급자

Download Presentation

C# 에서 데이터베이스 연동 방법

An Image/Link below is provided (as is) to download presentation

Download Policy: Content on the Website is provided to you AS IS for your information and personal use and may not be sold / licensed / shared on other websites without getting consent from its author.While downloading, if for some reason you are not able to download a presentation, the publisher may have deleted the file from their server.


- - - - - - - - - - - - - - - - - - - - - - - - - - E N D - - - - - - - - - - - - - - - - - - - - - - - - - -

Presentation Transcript


C

C#에서 데이터베이스 연동 방법


1 ado net

1. ADO.NET 데이터 공급자 소개


1 1 ado net

SQL Server

2005

C#

응용 프로그램

ADO

라이브러리

Stored

DB

1.1 ADO.NET 데이터 공급자의 개요

  • C#에서 ADO 이용한 DB 연동


1 1 ado net1

1.1 ADO.NET 데이터 공급자의 개요 (계속)

  • Microsoft SQL Server, OLE DB, XML등의 데이터 원본에 대한 일관적인 접근방법을 제공

  • ADO.NET 데이터 공급자

    • 응용 프로그램과 데이터 원본이 통신할 수 있게 하는 ADO.NET 아키텍쳐의 핵심 구성 요소

    • 응용 프로그램과 데이터 원본간의 연결 브릿지 역할을 함

    • 핵심 개체

      • Connection: 특정 데이터 원본과의 연결을 생성

      • Command:데이터 원본에 대해서 명령을 수행

      • DataReader: 빠른 전진 전용, 읽기 전용 데이터 액세스를 제공

      • DataAdapter: DataSet을 채우고 데이터 원본을 변경


1 2 ado net

1.2 ADO.NET의 기본 구조

ADO.Net의 구조

응용 프로그램

Connection

공급자(Provider)

Command

DataSet

SqlClient

OleDb

OracleClient

Odbc

Database

DataReader

DataAdapter


1 2 ado net1

1.2 ADO.NET의 기본 구조 (계속)

ADO.NET의 구성

.NET Data Provider

Command

DataReader

연결지향

Database

Connection

DataAdapter

DataSet

비연결지향

XML

DataSet


1 3 ado net

1.3 ADO.NET 데이터 공급자 유형

  • SQL Server 데이터 공급자 (SqlClient)

    • 중간 계층(OLE DB나 ODBC) 없이 바로 SQL Server와 통신

  • OLEDB 데이터 공급자

    • OLEDB 통해 COM interop layer를 통해 연결

  • ODBC 데이터 공급자

    • ODBC 드라이버를 통해 연동

  • Oracle 데이터 공급자

    • Oracle 클라이언트 연결 소프트웨어를 이용해서 Oracle 연동


1 3 ado net1

1.3 ADO.NET 데이터 공급자 유형(계속)

  • 데이터 공급자의 종류

    • SQL Server 데이터 공급자

      • SQL Server 중심의 데이터 전송 프로토콜(Tabular Data Stream)을 이용해서 SQL Server와 통신

      • SQL Server에 접근할 때 OLE DB나 ODBC 연결 계층을 추가하지 않고 직접 연결

      • Microsoft SQL Server 7.0 버전이나 이후 버전을 사용하는 응용 프로그램에 권장

      • 코드에 다음 “using”구문을 포함하여 사용

    • OLEDB 데이터 공급자

      • 네이티브 OLEDB를 이용해서 COM interop 레이어를 통해 데이터에 액세스함

      • OLE DB를 지원하는 공급자에 대한 중간 계층(middle tier) 응용 프로그램에 권장

      • 코드에 다음 “using”구문을 포함하여 사용


1 3 ado net2

1.3 ADO.NET 데이터 공급자 유형(계속)

  • ODBC 데이터 공급자 (1.1버전에 새로 도입)

    • 네이티브ODBC 드라이버 관리자를 이용해서 ODBC 데이터 원본에 액세스

    • ODBC 데이터 공급자는 로컬 트랜잭션과 분산트랜잭션 모두 지원

    • ODBC 데이터 원본을 사용하는 응용 프로그램에 권장

    • 코드에 다음 “using”구문을 포함하여 사용

  • Oracle 데이터 공급자 (1.1 버전에 새로 도입)

    • Oracle 클라이언트 연결 소프트웨어를 이용해서 Oracle 데이터 원본에 액세스

    • Oracle 클라이언트 소프트웨어 버전 8.1.7이나 이후 버전을 지원

    • Oracle을 데이터 원본으로 하는 응용 프로그램에 권장

    • 네임스페이스를 프로젝트 | 추가 | 참조 메뉴를 이용해서 System.Data.OracleClient.dll어셈블리를 선택해서 추가

    • 코드에 다음 “using”구문을 포함하여 사용


1 4 ado net

1.4 ADO.NET 데이터 공급자 연결 문자열

  • 연결 문자열

    • 응용 프로그램에서 원본 데이터와 연결하기 위해 연결 문자열 지정

    • ConnectionString 속성은 연결이 닫혀있을 경우에만 할당이 가능

    • 연결 문자열은 일련의 키=값 쌍이 세미콜론으로 구분된 형태로 구성

    • ConnectionString의 구성


2 sqlclient

2. SqlClient 데이터 공급자 개요


2 1 sqlclient

2.1 SqlClient 데이터 공급자 사용 방법

  • SQL DB 연결 순서

    1. 네임스페이스 명시

    • using System.Data.SqlClient;

      2. Connection 객체 생성(연결 프로퍼티 설정)

    • SqlConnection conn;

    • conn = new SqlConnection("Server=dibi.kangwon.ac.kr; user id =20024315;password=4315; database=DB4315");

      3. Connecton 연결

    • conn.Open();

      4. 작업수행( SQL 쿼리 작업)

      -- sqlCommand 객체를 사용하여 질의 수행

      5. 연결 닫기

    • conn.Close();


2 2 sqlclient connection

2.2 SqlClient 공급자의 Connection 클래스

  • SqlClient 공급자의 연결(Connection) 생성

using System.Data.SqlClient;

SqlConnection conn = new SqlConnection("Data Source = dibi.kangwon.ac.kr; Initial Catalog = DB4315; User ID = 20024315; Password = 4315");

conn.open();

  • Connection의 속성

    • conn.Database

    • conn.DataSource

    • conn.ServerVersion

    • conn.State

    • conn.WorkstationId

1. Database = DB4315

2. DataSource = localhost

3. DataServerVersion = 08.00.0194

4. State = Open

5. WorkstationID = JABOOK-1

6. State = Closed


2 3 sqlcommand

2.3 SqlCommand 클래스

  • SqlCommand 클래스

    • DB에 필요한 명령을 전달하거나 그 결과를 받아올 때 사용하는 클래스

  • SqlCommand에서 사용할 수 있는 명령들

    • 단일 값 및 레코드 셋을 반환하는 SELECT, CREATE, ALERT, DROP 같은 DLL(Data Definition Language) 명령

    • GRANT, DENY, REVOKE 같은 DCL(Data Control Language) 명령

    • INSERT, UPDATE, DELETE 같은 DML(Data Modification Language) 명령


2 3 sqlcommand1

2.3 SqlCommand 클래스 (계속)

  • SqlCommand 클래스 주요 함수

    • ExecuteNonQuery()

      • SQL 문을 실행하고 처리된 행의 개수를 반환

    • ExecuteReader()

      • 쿼리를 Connection에 보내고 SqlDataReader를 생성

    • ExecuteScalar()

      • 쿼리를 실행하고 쿼리에서 반환된 결과 집합의 첫번째 행의 첫번째 열 반환

    • ExecuteXmlReader()

      • 쿼리를 Connection에 보내고 XmlReader 객체를 생성


2 4 sqlcommand executenonquery

2.4 SqlCommand의 ExecuteNonQuery

  • ExecuteNonQuery()

    • 데이터베이스의 쿼리(Query) 중 Select 명령을 제외한 대부분의 명령을 처리할 수 있다.

  • ExecuteNonQuery()의 사용

    • Connection 생성 및 Open

      • string conStr = “dibi.kangwon.ac.kr; user id = …… ";

      • SqlConnection conn = new SqlConnection(conStr);

      • conn.Open();

    • SqlCommnad 생성

      • string createQuery = "create table Address ( id int, name char(20), addr char(40))";

      • SqlCommand comm = new SqlCommand(createQuery, conn);

    • SqlCommand 실행

      • comm.ExecuteNonQuery();

    • Connection Close

      • conn.Close();

반환 값 : 처리된 행의 개수


C

예제 프로그램(1)

…….

using System.Data.SqlClient;

namespace ado_intro

{

public partial class Form1 : Form

{

SqlConnection conn = new SqlConnection("Server=dibi.kangwon.ac.kr; user id =20024315;password=4315; database=DB4315");

public Form1()

{

InitializeComponent();

}

<다음 슬라이드에 계속>


C

예제 프로그램(1) - 계속

private void Form1_Load(object sender, EventArgs e)

{

conn.Open();

SqlCommand comm = new SqlCommand();

comm.Connection = conn;

comm.CommandText = "insert into Customers values('123', 'Company 123', 'Kim', 'Prof', 'Hyoja Dong')";

comm.ExecuteNonQuery();

MessageBox.Show("데이타 삽입 완료");

}

}

}


2 5 sqlcommand parameter insert

.Net Data Provider의 구성요소

Connection

Transaction

Command

Parameter

DataReader

SelectCommand

InsertCommand

DataAdapter

UpdateCommand

DeleteCommand

2.5 SqlCommand의 Parameter(Insert문장)

  • SqlCommand의 Parameter

    • 반복적인 쿼리 작업이나 쿼리가 복잡할 경우에 주로 사용한다.

  • Parameter 변수를 선언하는 방법

    • string query ="Insert into Address values (@ID, @Name, @Address)";

    • SqlCommand comm = new SqlCommand(query, conn);

  • Parameter 타입을 지정하는 예

    • comm.Parameters.Add("@ID", SqlDbType.TinyInt);

    • comm.Parameters.Add("@Name", SqlDbType.Char);

    • comm.Parameters.Add("@Address", SqlDbType.Char);

  • Parameter의 값 설정

    • comm.Parameters["@ID"].Value = 6;

    • comm.Parameters["@Name"].Value = "HongGilDDong";

    • comm.Parameters["@Address"].Value = "Seoul";

  • SqlCommand의 실행

    • comm.ExecuteNonQuery();


2 6 sqlcommand executereader

SqlCommand의 SqlDataReader

Connection

SqlDataReader

Database

SqlCommand (Select 문장)

ExecuteReader()의 호출

2.6 SqlCommand의 ExecuteReader

  • SqlCommand의 ExecuteReader()

    • Select 쿼리를 처리할 때 사용하는 함수

  • SqlDataReader를 얻기 위한 절차

    • 1. 네임스페이스 명시

      • using System.Data.SqlClient;

    • 2. Connection 객체 생성 : 생성자에게 연결 정보 전달, 연결 프로퍼티 설정

      • SqlConnection conn = new SqlConnection(Server=localhost; user id=sa; password=; database=northwind");

    • 3. Connecton 연결

      • conn.Open();

    • 4. Command 객체 생성 : 실행할 쿼리와 Connection을 인수로 함

      • SqlCommand comm = new SqlCommand("select * from 테이블명", conn);

    • 5. 데이터 읽어오기

      • SqlDataReader reader = comm.ExecuteReader();

    • 6. 작업수행

    • 7. 연결 닫기

      • conn.Close();


2 7 sqlcommand parameter select

2.7 SqlCommand의 Parameter(Select문장)

  • 데이터베이스 Connection 생성과 Open

    • string conStr = "Server=localhost;user id=sa;password=;database=northwind";

    • string query = "select * from Address where [email protected] or [email protected]";

    • SqlConnection conn = new SqlConnection(conStr);

    • conn.Open();

  • Command 생성과 Parameter 타입 지정

    • SqlCommand comm = new SqlCommand(query, conn);

    • comm.Parameters.Add("@addr1", SqlDbType.Char);

    • comm.Parameters.Add("@addr2", SqlDbType.Char);

  • Command의 Parameter 값 설정

    • comm.Parameters["@addr1"].Value = "서울시";

    • comm.Parameters["@addr2"].Value = "대전시";

  • 데이터 읽어오기

    • SqlDataReader sr = comm.ExecuteReader();

    • while(sr.Read()){

    • Console.WriteLine(sr.GetInt32(0)+"|"+ sr.GetString(1).Trim()+"|"+ sr.GetString(2) );

    • }

  • SqlDataReader와 Connection 닫기

    • sr.Close();

    • conn.Close();


  • Login