C 17 ADO NET 17 ADO NET c

  • Slides: 48
Download presentation
C# 17장. ADO. NET

C# 17장. ADO. NET

17장. ADO. NET 구조 응용 프로그램 c# ADO. NET SQL Server Provider SQL 서버

17장. ADO. NET 구조 응용 프로그램 c# ADO. NET SQL Server Provider SQL 서버 ORACLE Provider 오라클 ODBC Provider My. SQL OLE DB Provider Access 4 / 33

17장. ADO. NET 의 기본 구조 1. NET Data Provider Command 연결지향 Database Data.

17장. ADO. NET 의 기본 구조 1. NET Data Provider Command 연결지향 Database Data. Reader Connection Data. Adapter 비연결지향 Data. Set XML Data. Set c# 6 / 33

17장. ADO. NET 의 기본 구조 2 XML 문서 Connection 공급자(Provider) Database Sql. Client

17장. ADO. NET 의 기본 구조 2 XML 문서 Connection 공급자(Provider) Database Sql. Client Ole. Db Oracle. Client Odbc Command Data. Set Data. Reader Data. Adapter 7 c# 7 / 33

17장. ADO. NET 연결 문자열 using System. Data. Sql. Client; Sql. Connection conn =

17장. ADO. NET 연결 문자열 using System. Data. Sql. Client; Sql. Connection conn = new Sql. Connection("Data Source=(local); Initial Catalog=ADOTest; User ID=sa; Password=csharp 777"); conn. open(); using System. Data. Ole. Db; Ole. Db. Connection con = new Ole. Db. Connection( @"Provider=Microsoft. Jet. OLEDB. 4. 0; Data Source=C: /NWind. mdb"); conn. open(); c# 9 / 33

17장. ADO. NET 연결 설정 ▣ SQL DB 연결 순서 ◈ 1. 네임스페이스 명시

17장. ADO. NET 연결 설정 ▣ SQL DB 연결 순서 ◈ 1. 네임스페이스 명시 – using System. Data. Sql. Client; ◈ 2. Connection 객체 생성(연결 프로퍼티 설정) – Sql. Connection conn; – conn = new Sql. Connection("Server=localhost; user id=sa; password=csharp 777; database=ADOTest"); ◈ 3. Connecton 연결 – conn. Open(); ◈ ◈ 4. 작업수행( SQL 쿼리 작업) 5. 연결 닫기 – conn. Close(); ▣ Connection의 속성 ◈ ◈ ◈ c# conn. Database conn. Data. Source conn. Server. Version conn. State conn. Workstation. Id 10 / 33

17장. ADO. NET DB 생성(ADOTest) SQL Server Management Studio 클릭 c# 11 / 33

17장. ADO. NET DB 생성(ADOTest) SQL Server Management Studio 클릭 c# 11 / 33

17장. ADO. NET 연결 클릭 c# 12 / 33

17장. ADO. NET 연결 클릭 c# 12 / 33

17장. ADO. NET 연결 테스트 /** Sql. Client Connection 설정 테스트 **/ using System;

17장. ADO. NET 연결 테스트 /** Sql. Client Connection 설정 테스트 **/ using System; using System. Data. Sql. Client; class Connection. Test { public static void Main(string[] args) { string str. Conn = "server=brain; database=ADOTest; user id=sa; password=csharp 777"; Sql. Connection conn = new Sql. Connection(str. Conn); conn. Open(); // Open Connection Console. Write. Line("1. Database = " + conn. Database); Console. Write. Line("2. Data. Source = " + conn. Data. Source); Console. Write. Line("3. Data. Server. Version = " + conn. Server. Version); Console. Write. Line("4. State = " + conn. State); Console. Write. Line("5. Workstation. ID = " + conn. Workstation. Id); conn. Close(); // Close Connection Console. Write. Line("6. State = " + conn. State); } c# 18 / 33

17장. ADO. NET sql. Command 의 Execute. Non. Query ▣ Execute. Non. Query() ◈

17장. ADO. NET sql. Command 의 Execute. Non. Query ▣ Execute. Non. Query() ◈ ▣ 데이터베이스의 쿼리(Query) 중 Select 명령을 제외한 대부분의 명령을 처 리할 수 있다. Execute. Non. Query()의 사용 ◈ Connection 생성 및 Open – string con. Str = "Server=localhost; user id=sa; password=csharp 777; database=ADOTest"; – Sql. Connection conn = new Sql. Connection(con. Str); – conn. Open(); ◈ Sql. Commnad 생성 – string create. Query = "create table Address ( id int, name char(20), addr char(40))"; – Sql. Command comm = new Sql. Command(create. Query, conn); ◈ Sql. Command 실행 – comm. Execute. Non. Query(); ◈ Connection Close – conn. Close(); c# 20 / 33

17장. ADO. NET sql. Command 의 Execute. Non. Query ( Address 테이블 생성후 자료

17장. ADO. NET sql. Command 의 Execute. Non. Query ( Address 테이블 생성후 자료 입력) /** Sql. Command의 Execute. Non. Query() **/ using System; using System. Data. Sql. Client; class Command. Non. Query. Test { //1. Connection 생성과 Open Sql. Connection conn = new Sql. Connection(con. Str); conn. Open(); //2. Command 생성 Sql. Command comm = new Sql. Command(create. Query, conn); public static void Main() { string con. Str = "Server=localhost; user id=sa; password=csharp 777; database=ADOTest"; string create. Query = "create table Address ( id int, name char(20), addr char(40))"; string query 1 = "Insert into Address values (1, '김삿갓', '서울시')"; string query 2 = "Insert into Address values (2, '홍길동', '부산시')"; string query 3 = "Insert into Address values (3, '춘향이', '광주시')"; string query 4 = "Insert into Address values (4, '개똥이', '대구시')"; string query 5 = "Insert into Address values (5, '김선달', '대전시')"; Sql. Command comm 1 = new Sql. Command(query 1, conn); Sql. Command comm 2 = new Sql. Command(query 2, conn); Sql. Command comm 3 = new Sql. Command(query 3, conn); Sql. Command comm 4 = new Sql. Command(query 4, conn); Sql. Command comm 5 = new Sql. Command(query 5, conn); //3. Command 수행 comm. Execute. Non. Query(); comm 1. Execute. Non. Query(); comm 2. Execute. Non. Query(); comm 3. Execute. Non. Query(); comm 4. Execute. Non. Query(); comm 5. Execute. Non. Query(); //4. Connection Close conn. Close(); c# } 21 / 33

17장. ADO. NET 결과 확인 c# 1. 쿼리문 입력 USE ADOTest; select * from

17장. ADO. NET 결과 확인 c# 1. 쿼리문 입력 USE ADOTest; select * from dbo. Address; 2. 실행 클릭 23 / 33

17장. ADO. NET sql. Command의 Parameter(Insert문장) ▣ Sql. Command의 Parameter ◈ ▣ Parameter 변수를

17장. ADO. NET sql. Command의 Parameter(Insert문장) ▣ Sql. Command의 Parameter ◈ ▣ Parameter 변수를 선언하는 방법 ◈ ◈ ▣ comm. Parameters["@ID"]. Value = 6; comm. Parameters["@Name"]. Value = "Hong. Gil. DDong"; comm. Parameters["@Address"]. Value = "Seoul"; Sql. Command의 실행 ◈ c# comm. Parameters. Add("@ID", Sql. Db. Type. Tiny. Int); comm. Parameters. Add("@Name", Sql. Db. Type. Char); comm. Parameters. Add("@Address", Sql. Db. Type. Char); Parameter의 값 설정 ◈ ◈ ◈ ▣ string query ="Insert into Address values (@ID, @Name, @Address)"; Sql. Command comm = new Sql. Command(query, conn); Parameter 타입을 지정하는 예 ◈ ◈ ◈ ▣ 반복적인 쿼리 작업이나 쿼리가 복잡할 경우에 주로 사용한다. comm. Execute. Non. Query(); 24 / 33

17장. ADO. NET sql. Command의 Parameter(Insert문장) /** Sql. Command의 Parameter 이용 I **/ using

17장. ADO. NET sql. Command의 Parameter(Insert문장) /** Sql. Command의 Parameter 이용 I **/ using System; using System. Data. Sql. Client; public class Command. Param. Test { public static void Main() { string con. Str = "Server=localhost; user id=sa; password=csharp 777; database= ADOTest"; string query = "Insert into Address values (@ID, @Name, @Address)"; //1. Connection 생성과 Open Sql. Connection conn = new Sql. Connection(con. Str); conn. Open(); //2. Command 생성 Sql. Command comm = new Sql. Command(query, conn); c# //3. Command의 Parameter Type설정 comm. Parameters. Add("@ID", Sql. Db. Type. Tiny. Int); comm. Parameters. Add("@Name", Sql. Db. Type. Char); comm. Parameters. Add("@Address", Sql. Db. Type. Char); //4. Command의 Parameter 값설정과 명령 실행1 comm. Parameters["@ID"]. Value = 6; comm. Parameters["@Name"]. Value = "Hong. Gil. DDong"; comm. Parameters["@Address"]. Value = "Seoul"; comm. Execute. Non. Query(); //5. Command의 Parameter 값설정과 명령 실행2 comm. Parameters["@ID"]. Value = 7; comm. Parameters["@Name"]. Value = "MR. Kim"; comm. Parameters["@Address"]. Value = "Pusan"; comm. Execute. Non. Query(); //6. Connection Close conn. Close(); } } 26 / 33

17장. ADO. NET 결과 조회 c# 27 / 33

17장. ADO. NET 결과 조회 c# 27 / 33

17장. ADO. NET Sql. Command의 Execute. Reader ▣ Sql. Command의 Execute. Reader() ◈ ▣

17장. ADO. NET Sql. Command의 Execute. Reader ▣ Sql. Command의 Execute. Reader() ◈ ▣ Select 쿼리를 처리할 때 사용하는 함수 Sql. Data. Reader를 얻기 위한 절차 ◈ Sql. Command의 Sql. Data. Reader Connection Database 1. 네임스페이스 명시 Sql. Command (Select 문 장) Execute. Reader()의 호출 Sql. Data. Re ader – using System. Data. Sql. Client; ◈ 2. Connection 객체 생성 : 생성자에게 연결 정보 전달, 연결 프로퍼티 설정 – Sql. Connection conn = new Sql. Connection(Server=localhost; user id=sa; password=; database=northwind"); ◈ 3. Connecton 연결 – conn. Open(); ◈ 4. Command 객체 생성 : 실행할 쿼리와 Connection을 인수로 함 – Sql. Command comm = new Sql. Command("select * from 테이블명", conn); ◈ 5. 데이터 읽어오기 – Sql. Data. Reader reader = comm. Execute. Reader(); 6. 작업수행 ◈ 7. 연결 닫기 ◈ – conn. Close(); c# 29 / 33

17장. ADO. NET Execute. Reader() 예제 /** Execute. Reader()를 테스트하는 예제 **/ using System;

17장. ADO. NET Execute. Reader() 예제 /** Execute. Reader()를 테스트하는 예제 **/ using System; using System. Data. Sql. Client; public class Command. Reader { public static void Main() { string con. Str = "Server=localhost; user id=sa; password=csharp 777; database=ADOTest"; string query = "select * from Address"; Sql. Connection conn = new Sql. Connection(con. Str); conn. Open(); Sql. Command comm = new Sql. Command(query, conn); Sql. Data. Reader sr = comm. Execute. Reader(); while (sr. Read()) { Console. Write(sr. Get. Int 32(0) + "|"); Console. Write(sr. Get. String(1). Trim() + "|"); Console. Write(sr. Get. String(2)); Console. Write. Line(); } sr. Close(); conn. Close(); c# 30 / 33

17장. ADO. NET Sql. Command의 Parameter(Select문장) ▣ 데이터베이스 Connection 생성과 Open ◈ ◈ ▣

17장. ADO. NET Sql. Command의 Parameter(Select문장) ▣ 데이터베이스 Connection 생성과 Open ◈ ◈ ▣ string con. Str = "Server=localhost; user id=sa; password=csharp 777; database=ADOTest"; string query = "select * from Address where addr=@addr 1 or addr=@addr 2"; Sql. Connection conn = new Sql. Connection(con. Str); conn. Open(); Command 생성과 Parameter 타입 지정 ◈ Sql. Command comm = new Sql. Command(query, conn); ◈ comm. Parameters. Add("@addr 1", Sql. Db. Type. Char); ◈ comm. Parameters. Add("@addr 2", Sql. Db. Type. Char); ▣ Command의 Parameter 값 설정 ◈ comm. Parameters["@addr 1"]. Value = "서울시"; ◈ comm. Parameters["@addr 2"]. Value = "대전시"; ▣ 데이터 읽어오기 ◈ Sql. Data. Reader sr = comm. Execute. Reader(); ◈ while(sr. Read()){ ◈ Console. Write. Line(sr. Get. Int 32(0)+"|"+ sr. Get. String(1). Trim()+"|"+ sr. Get. String(2) ); ◈ } ▣ Sql. Data. Reader와 Connection 닫기 ◈ sr. Close(); ◈ conn. Close(); c# 31 / 33

17장. ADO. NET Sql. Command의 Parameter(Select문장) /** Sql. Command의 파라미터 이용 **/ using System;

17장. ADO. NET Sql. Command의 Parameter(Select문장) /** Sql. Command의 파라미터 이용 **/ using System; using System. Data. Sql. Client; public class Command. Param. Test 2 { public static void Main() { string con. Str = "Server=localhost; user id=sa; password=csharp 777; database=ADOTest"; string query = "select * from Address where addr=@addr 1 or addr=@addr 2"; Sql. Connection conn = new Sql. Connection(con. Str); conn. Open(); Sql. Command comm = new Sql. Command(query, conn); comm. Parameters. Add("@addr 1", Sql. Db. Type. Char); comm. Parameters. Add("@addr 2", Sql. Db. Type. Char); comm. Parameters["@addr 1"]. Value = "서울시"; comm. Parameters["@addr 2"]. Value = "대전시"; Sql. Data. Reader sr = comm. Execute. Reader(); while (sr. Read()) { Console. Write(sr. Get. Int 32(0) + "|"); Console. Write(sr. Get. String(1). Trim() + "|"); Console. Write(sr. Get. String(2)); Console. Write. Line(); } c# 32 / 33

17장. ADO. NET Sql. Command를 이용한 Xml. Reader ▣ Connection 생성과 Open string con.

17장. ADO. NET Sql. Command를 이용한 Xml. Reader ▣ Connection 생성과 Open string con. Str = "Server=localhost; user id=sa; password=; database=northwind"; ◈ Sql. Connection conn = new Sql. Connection(con. Str); 컬럼 이름을 태그의 이름을 사용 ◈ conn. Open(); ◈ ▣ Command 생성 및 처리 그리고 Xml. Reader 얻기 해서 XML 데이터를 구축한다. (RAW, AUTO, EXPLICIT) string xquery = "select * from Address FOR XML AUTO, ELEMENTS"; ◈ Sql. Command xcomm = new Sql. Command(xquery, conn); ◈ Xml. Reader reader = xcomm. Execute. Xml. Reader(); ◈ ▣ 그 외의 작업 ◈ ◈ ◈ c# while (reader. Read()){ //작업 } reader. Close(); conn. Close(); Sql. Command로 작업후 Reader들 Sql. Connecti on Database Sql. Data. Read er Sql. Comma nd Xml. Reader 33 / 33

17장. ADO. NET Sql. Command를 이용한 Xml. Reader /** XMLReader를 사용하는 예제 **/ using

17장. ADO. NET Sql. Command를 이용한 Xml. Reader /** XMLReader를 사용하는 예제 **/ using System; using System. Data. Sql. Client; using System. Xml; class Command. Xml. Test try { reader = xcomm. Execute. Xml. Reader(); while (reader. Read()) { switch (reader. Node. Type) { case Xml. Node. Type. Element: { public static void Main() { string con. Str = "Server=localhost; user id=sa; password=csharp 777; database=ADOTest"; string xquery = "select * from Address FOR XML AUTO, ELEMENTS"; Sql. Connection conn = new Sql. Connection(con. Str); conn. Open(); Sql. Command xcomm = new Sql. Command(xquery, conn); Xml. Reader reader = null; c# Console. Write("<{0}>", reader. Name); break; case Xml. Node. Type. Text: Console. Write(reader. Value. Trim()); break; case Xml. Node. Type. End. Element: Console. Write. Line("</{0}>", reader. Name); break; } } } catch (Exception e) { Console. Write. Line(e. Message); } finally { reader. Close(); conn. Close(); } 34 / 33

Data. Set과 Data. Adapter

Data. Set과 Data. Adapter

17장. ADO. NET Data. Set 과 Data. Adapter. NET 데이터 공급자 Connection Transaction Command

17장. ADO. NET Data. Set 과 Data. Adapter. NET 데이터 공급자 Connection Transaction Command Transaction Data. Reader Data. Set Data. Adapter Select. Command Insert. Command Data. Table Data. Row. Collection Data. Column. Collection Update. Command Delete. Command Database c# Data. Table. Collection Constraint. Collection Data. Relation. Collection XML 36 / 33

17장. ADO. NET . Net에서 이용되는 데이터 구조 Command Data. Reader 연결지향 Database Data.

17장. ADO. NET . Net에서 이용되는 데이터 구조 Command Data. Reader 연결지향 Database Data. Set Connection Data. Adapter 비연결지향 c# 37 / 33

17장. ADO. NET Data. Adapter 속성과 함수 ▣ Data. Adapter 속성 ◈ Delete. Command

17장. ADO. NET Data. Adapter 속성과 함수 ▣ Data. Adapter 속성 ◈ Delete. Command – 삭제 명령을 사용하는 Command 필드 ◈ Insert. Command – 입력 명령을 사용하는 Command 필드 ◈ Select. Command – 조회 명령을 사용하는 Command 필드 ◈ Update. Command update() Data. Adapter Select. Command Insert. Command Data. Set Update. Command Delete. Command – 수정 명령을 사용하는 Command 필드 ▣ Data. Adapter 주요 함수 ◈ Fill() Fill. Schema( ) Fill() – 데이터 원본에 있는 데이터를 Data. Set의 Data. Table에 넣어준다. ◈ Fill. Schema() – 데이터 원본의 스키마에 맞게 Data. Set에 Data. Table을 생성한다. ◈ Update() – Data. Set의 Data. Table에서 변경된 데이터를 원본에 반영시킨다. c# 38 / 33

17장. ADO. NET Data. Set의 구성요소. Net Data. Set 구성요소 Data. Table Data. Row

17장. ADO. NET Data. Set의 구성요소. Net Data. Set 구성요소 Data. Table Data. Row Data. Column Data. Row Data. Table Constraint Data. Column Data. Row Data. Relation Constraint Data. Column Constraint Data. Relation Data. Set의 개념상의 구성요소 Data. Set Data. Column. Collection Data. Row. Collection Data. Column. Collection Data. Table. Collection Data. Column Data. Table Data. Column Data. Row Data. Table Data. Row 39 c# 39 / 33

17장. ADO. NET Data. Set의 계층구조 Data. Set Data. Column. Collecti Data. Table. Collection

17장. ADO. NET Data. Set의 계층구조 Data. Set Data. Column. Collecti Data. Table. Collection on on Data. Table c# Data. Column. Collecti on on on Data. Column. Collecti Data. Row. Collection on on Data. Column Data. Row 40 / 33

17장. ADO. NET Data. Set을 만드는 방법 I 1. Connection 생성 및 Open ◈

17장. ADO. NET Data. Set을 만드는 방법 I 1. Connection 생성 및 Open ◈ string con. Str = "Server=localhost; user id=sa; password=csharp 777; database=ADOTest"; ◈ Sql. Connection conn = new Sql. Connection(con. Str); ◈ conn. Open(); 2. Data. Adapter 생성 ◈ Sql. Data. Adapter adapter = new Sql. Data. Adapter(); 3. Sql. Command 할당 ◈ string query = "select * from Address"; ◈ adapter. Select. Command = new Sql. Command(query, conn); 4. Data. Set 생성 ◈ Data. Set ds = new Data. Set(); 5. Data. Adapter를 이용해서 Data. Set 채우기 ◈ adapter. Fill(ds); 6. 작업수행 7. 연결 닫기 ◈ conn. Close(); 41 c# 41 / 33

17장. ADO. NET Data. Set 만들기 /** Data. Adapter를 이용해서 Data. Set 만들기 I

17장. ADO. NET Data. Set 만들기 /** Data. Adapter를 이용해서 Data. Set 만들기 I **/ using System; using System. Data. Sql. Client; public class Adapter. Handle. Test { public static void Main() { string con. Str = "Server=localhost; user id=sa; password=csharp 777; database=ADOTest"; string query = "select * from Address"; //1. Connenction 생성과 Open Sql. Connection conn = new Sql. Connection(con. Str); conn. Open(); //2. Sql. Data. Adapter 생성 Sql. Data. Adapter adapter = new Sql. Data. Adapter(); //3. Adapter에 Select. Command 할당 adapter. Select. Command = new Sql. Command(query, conn); //4. Data. Set 생성 Data. Set ds = new Data. Set(); //5. Adapter를 통해서 Data. Set 채우기 adapter. Fill(ds); //6. Connection 닫기 conn. Close(); c# } 42 / 33

17장. ADO. NET Data. Set으로 작업하기 ▣ Data. Adapter를 생성할 때 디폴트 생성자를 사용한

17장. ADO. NET Data. Set으로 작업하기 ▣ Data. Adapter를 생성할 때 디폴트 생성자를 사용한 후 sql. Command를 할당 Connenction 생성과 Open ◈ string con. Str = "Server=localhost; user id=sa; password=csharp 777; database=ADOTest"; ◈ Sql. Connection conn = new Sql. Connection(con. Str); ◈ conn. Open(); ▣ Sql. Data. Adapter 생성 ◈ Sql. Data. Adapter adapter = new Sql. Data. Adapter(); ▣ Adapter에 Select. Command 할당 ◈ string query = "select * from Address"; ▣ ▣ adapter. Select. Command = new Sql. Command(query, conn); Data. Set 생성 ◈ Data. Set ds = new Data. Set(); ▣ Adapter를 통해서 Data. Set 채우기 Data. Set의 계층구조 ◈ adapter. Fill(ds); ▣ ◈ conn. Close(); ▣ Data. Set Connection 닫기 Data. Set으로 작업하기 ◈ ◈ ◈ ◈ Data. Table table= ds. Tables[0]; Data. Row. Collection rows = table. Rows; foreach (Data. Row dr in rows){ for (int i = 0; i<table. Columns. Count; i++) Console. Write("{0, 15}", dr[i]); Console. Write. Line(); } Tables Data. Column. Collectio Data. Table. Collection nn Data. Table Data. Column. Collectio nnn Data. Column. Collectio Data. Row. Collection nn Data. Colum n Data. Rows Columns 43 c# 43 / 33

17장. ADO. NET Data. Set의 사용을 보여주는 예제 /** Data. Set의 사용을 보여주는 예제

17장. ADO. NET Data. Set의 사용을 보여주는 예제 /** Data. Set의 사용을 보여주는 예제 **/ using System; using System. Data. Sql. Client; public class Data. Set. Handle. Test { public static void Main() { string con. Str = "Server=localhost; user id=sa; password=csharp 777; database=ADOTest"; string query = "select * from Address"; //1. Connenction 생성과 Open Sql. Connection conn = new Sql. Connection(con. Str); conn. Open(); //2. Sql. Data. Adapter 생성 Sql. Data. Adapter adapter = new Sql. Data. Adapter(); c# //3. Adapter에 Select. Command 할당 adapter. Select. Command = new Sql. Command(query, conn); //4. Data. Set 생성 Data. Set ds = new Data. Set(); //5. Adapter를 통해서 Data. Set 채우기 adapter. Fill(ds); //6. Connection 닫기 conn. Close(); //7. Data. Set으로 작업하기 Data. Table table = ds. Tables[0]; Data. Row. Collection rows = table. Rows; foreach (Data. Row dr in rows) { for (int i = 0; i < table. Columns. Count; i++) Console. Write("{0, 15}", dr[i]); Console. Write. Line(); } } } 44 / 33

17장. ADO. NET Data. Set을 만드는 방법 II ▣ Connection 생성 및 Open ◈

17장. ADO. NET Data. Set을 만드는 방법 II ▣ Connection 생성 및 Open ◈ ◈ ◈ ▣ Sql. Data. Adapter adapter = new Sql. Data. Adapter("select * from Address", conn); Data. Set ds = new Data. Set("My. Address. Data. Set"); //Data. Set의 이름 adapter. Fill(ds); //테이블의 이름 Sql. Data. Adapter adapter = new Sql. Data. Adapter(); conn. Close(); Data. Set으로 작업하기 ◈ ◈ ◈ ◈ c# string con. Str = "Server=localhost; user id=sa; password=; database=northwind"; Sql. Connection conn = new Sql. Connection(con. Str); conn. Open(); Data. Set 만들기 ◈ ◈ ▣ Data. Adapter에 SQL 쿼리와 Connection을 매개 변수로 사용하는 방법 string query = "select * from Address"; adapter. Select. Command = new Sql. Command(query, conn); Data. Set ds = new Data. Set(); Data. Table table = ds. Tables[0]; Data. Row. Collection rows = table. Rows; foreach (Data. Row dr in rows){ for (int i = 0; i<table. Columns. Count; i++) Console. Write("{0, 15}", dr[i]); Console. Write. Line(); } 45 / 33 45

17장. ADO. NET Data. Set을 만드는 방법 2 /** Data. Adapter를 이용해서 Data. Set

17장. ADO. NET Data. Set을 만드는 방법 2 /** Data. Adapter를 이용해서 Data. Set 만들기 II **/ using System; using System. Data. Sql. Client; public class Adapter. Handle. Test 2 { public static void Main(string[] args) { string con. Str = "Server=localhost; user id=sa; password=csharp 777; database=ADOTest"; Sql. Connection conn = new Sql. Connection(con. Str); conn. Open(); Sql. Data. Adapter adapter = new Sql. Data. Adapter("select * from Address", conn); Data. Set ds = new Data. Set("My. Address. Data. Set"); //Data. Set의 이름 adapter. Fill(ds); //테이블의 이름 conn. Close(); Data. Table table = ds. Tables[0]; Data. Row. Collection rows = table. Rows; foreach (Data. Row dr in rows) { for (int i = 0; i < table. Columns. Count; i++) Console. Write("{0, 15}", dr[i]); Console. Write. Line(); } c# } 46 / 33

17장. ADO. NET Data. Set의 Update() ▣ Data. Set에서 Insert. Command 명령을 수행하는 방법

17장. ADO. NET Data. Set의 Update() ▣ Data. Set에서 Insert. Command 명령을 수행하는 방법 Data. Set 자체에 레코드를 삽입한다. ◈ Data. Adapter에 Sql. Command를 지정한다. ◈ Data. Adapter를 이용해서 Data. Set을 데이터베이스로 업데이트한다. ◈ Data. Set의 Insert. Command 명령 수행 Data. Set Data. Adapter에 Sql. Command 지정 (Insert 문장) Data. Column. Collection Data. Table. Collection 2 Data. Table Data. Row 새로운 Row 삽 입 Data. Row row = Database Data. Adpater를 이용해서 Update() 1 3 table. New. Row(); row["id"] = "8"; row["name"] = "Uncle"; row["addr"] = "Ameria"; table. Rows. Add(row); 47 c# 47 / 33

1. 2. 3. 4. 5. Sql. Data. Adapter adapter = new Sql. Data. Adapter("select

1. 2. 3. 4. 5. Sql. Data. Adapter adapter = new Sql. Data. Adapter("select * from Address", conn); Data. Set ds = new Data. Set("My. Address. Data. Set"); //Data. Set의 이름 adapter. Fill(ds, "Address"); //테이블의 이름 conn. Close(); Data. Table table = ds. Tables["Address"]; 6. 7. 8. 9. 10. 11. //1. Data. Row 생성하여 Row를 삽입하기 Data. Row row = table. New. Row(); row["id"] = "8"; 연결형으로 처리하는 것 고려 row["name"] = "Uncle"; è모든 자료를 client로 down하여 row["addr"] = "Ameria"; 1건을 입력하여 처리하는 것은 비효율적임 table. Rows. Add(row); 12. 13. 14. 15. 16. 17. 18. //2. Sql. Command 지정하기 conn. Open(); string str. Sql="Insert into Address(id, name, addr)values(@id, @name, @addr)"; adapter. Insert. Command = new Sql. Command(str. Sql, conn); adapter. Insert. Command. Parameters. Add("@id", Sql. Db. Type. Tiny. Int, 0, "id"); adapter. Insert. Command. Parameters. Add("@name", Sql. Db. Type. Char, 20, "name"); adapter. Insert. Command. Parameters. Add("@addr", Sql. Db. Type. Char, 40, "addr"); 19. 20. 21. //3. Data. Adapter를 이용하여 Data. Set 업데이트하기 adapter. Update(ds, "Address"); conn. Close();