반응형

프로그래밍 기술/SQL과 ADO.NET 33

[ADO.NET] SqlDataAdapter

SqlDataAdapter SqlDataAdapter는 SQL 데이터 소스와 DataSet 간의 연결에 사용합니다. Fill 메서드를 이용하여 데이터 소스의 데이터를 얻어와 DataSet을 채우고 Update 메서드를 이용하여 DataSet의 데이터로 데이터 소스의 데이터를 일치시키게 합니다. SqlDataDataper에 검색, 추가, 변경, 삭제에 사용할 SqlCommand를 초기에 설정한 후에 데이터 소스의 데이터를 Fill 메서드를 이용해 DataSet을 채우고 이 후에 작업은 DataSet으로 데이터를 관리하다가 데이터 소스를 변경할 필요가 있을 때 Update 메서드를 이용하여 데이터 소스에 반영시키는 것이 일반적인 사용입니다. ▷클래스 상속 계층System.Object System.Marsha..

[ADO.NET] DataView 클래스를 사용 예 - 도서 관리 프로그램

DataView 사용 예 이번에는 DataView 개체를 사용하는 간단한 예를 살펴볼게요. 여기에서는 Books 테이블에서 특정 저자가 쓴 책들을 ISBN 순으로 정렬한 DataView 개체를 생성한 후에 새로운 DataRowView 개체를 생성하여 추가하고 기존에 있던 데이터를 변경하는 예제입니다. 먼저 Books 테이블에서 저자가 홍길동인 책들을 ISBN 순으로 정렬한 DataView 개체를 생성합니다.DataView dv = new DataView(dt, "Author='홍길동'", "ISBN", DataViewRowState.CurrentRows); 그리고 DataView 개체에 있는 정보를 출력해 보면 Books 테이블에 있는 데이터 중에 저자가 홍길동인 책들만 ISBN 순으로 출력됨을 확인할 ..

[ADO.NET] DataView

DataView ADO.NET 기술에서는 DataTable의 사용자 지정 뷰인 DataView 클래스를 제공합니다. DataTable에 있는 내용을 정렬하거나 탐색 및 필터링을 하기 위해 DataView 개체를 이용합니다. DataView 개체는 데이터를 저장하지 않으면 DataView 개체와 의존 관계에 있는 DataTable 개체의 뷰를 나타냅니다. DataView에서는 원본 DataTable의 데이터에 관한 서로 다른 뷰를 동적으로 제공합니다. 따라서 뷰와 관련없는 다른 테이블에 영향을 받지 않고 DataView에 없는 데이터를 사용자로부터 보호할 수 있습니다. 실제 윈도우즈 응용 프로그램이 웹 프로그래밍에서 데이터 바인딩 컨트롤을 사용할 때 DataView 개체를 많이 이용합니다. ▷클래스 상속 ..

[ADO.NET] DataSet과 XML을 이용한 출판사 별 도서 관리 프로그램 만들기

DataSet DataSet은 ADO.NET 핵심 구성 요소로 프로그램 내의 논리적 DB로 데이터 집합과 관계로 구성합니다. DataTable은 메모리 상의 하나의 테이블을 표현하는 개체이고 DataSet은 메모리 상의 DB를 표현하는 개체입니다. 따라서 DataSet은 여러 개의 테이블과 관계들의 집합체라고 볼 수 있습니다. DataSet 개체를 구성할 DataTable 개체들은 Tables 컬렉션에 보관하고 관계는 Relations 컬렉션에 보관합니다. DataSet 개체도 DataTable 처럼 스키마와 데이터를 저장하거나 읽어와서 구성하는 메서드를 제공합니다. DataSet 클래스에는 DataSet 개체를 생성할 때 사용하는 생성자를 제공합니다.public DataSet ( );public Dat..

[ADO.NET] DataTable 클래스와 XML을 이용한 도서 관리 프로그램 만들기

DataTable 클래스와 XML을 이용한 도서 관리 프로그램 만들기 DataTable 클래스에서는 메모리 상의 테이블입니다. ADO.NET 에서는 논리적 DB를 XML 형태로 저장하고 로딩할 수 있게 기술을 지원하고 있습니다. DataTable 클래스에도 WriteXml, WriteXmlSchema, LoadXml, LoadXmlSchema 메서드를 제공하여 메모리 상의 테이블 구조와 내용을 XML 형태로 저장하고 로딩할 수 있습니다. public void WriteXml(Stream stream);public void WriteXml(string filename);;public void WriteXml(TextWriter writer);public void WriteXml(XmlWriter write..

[ADO.NET] DataTable 개체에 행 추가

DataTable 개체에 행 추가 이번에는 DataTable 개체에 행을 추가하는 방법을 알아봅시다. DataTable 클래스에는 Rows 컬렉션 속성을 제공하고 있으며 추가한 Row 개체를 보관하는 컬렉션입니다. 따라서 DataTable 개체에 행을 추가할 때는 Row 클래스를 이용합니다. 그런데, Row 개체는 DataTable 개체에 설계한 구조에 맞아야 하기 때문에 직접 생성할 수 없고 DataTable 개체의 NewRow 메서드를 이용하여 설계한 구조에 맞는 Row 개체를 생성합니다.DataRow dr = dt.NewRow(); 그리고 DataRow 개체에 열마다 원하는 값을 지정합니다.dr["ISBN"] = isbn;dr["Title"] = title;dr["Author"] = author;d..

[ADO.NET] DataTable 클래스 개체 생성과 테이블 구조 설계

DataTable ADO.NET에서는 논리적인 데이터 집합을 디자인하고 데이터를 관리할 수 있는 DataTable 클래스를 제공하고 있습니다. DataTable은 DataSet을 구성하는 주요 개체로 프로그램 메모리 상의 한 개의 테이블입니다. 여기에서는 DataTable 개체를 생성하여 테이블을 설계하고 해당 개체를 이용하여 데이터를 관리하는 방법을 살펴볼게요. ▷클래스 상속 계층System.Object System.ComponentModel.MarshalByValueComponent System.Data.DataTable DataTable 개체 생성과 테이블 구조 설계 DataTable은 개체를 생성한 후에 테이블의 구조를 설계한 후에 사용합니다. 테이블의 구조를 설계한다는 것은 열을 추가하는 것과 ..

[MSSQL] 저장 프로시저 만들기 실습

서버 탐색기를 이용한 저장 프로시저 사용하기에 이어 상품 이름으로 PID 검색 저장 프로시저 이번에는 상품 이름으로 PID를 검색하는 저장 프로시저를 작성해 봅시다. 여기에서는 상품 이름을 인자로 받아서 검색한 후에 PID를 알려주어야 합니다. PID처럼 수행 결과를 알려 주려면 OUTPUT 유형의 매개 변수로 지정하세요. 참고로 여기에서는 검색한 상품이 없을 때 PID 값을 -1로 지정하는 것으로 설정하였습니다. ALTER PROCEDURE dbo.FindCIDByName ( @CNAME varchar(50), @CID int OUTPUT ) AS SET @CID = -1 Select @CID = CID from Custom where CNAME = @CNAME RETURN 상품 이름으로 판매 개수 확..

서버 탐색기를 이용하여 SQL 저장 프로시저 사용하기

서버 탐색기를 이용하여 SQL 저장 프로시저 사용하기 MS SQL 2008에서는 입력 인자를 포함하여 자주 사용하는 쿼리문을 저장하였다가 사용할 수 있게 저장 프로시저를 제공하고 있습니다. 상품 추가 저장 프로시저 저장 프로시저를 추가하려면 먼저 서버 탐색기의 저장 프로시저의 컨텍스트 메뉴에서 새 저장 프로시저 추가를 선택하세요. [그림] 새 저장 프로시저 추가 선택 저장 프로시저는 저장 프로시저 이름과 매개 변수와 내부 변수, 수행 쿼리문 등을 포함할 수 있습니다. CREATE PROCEDURE dbo.[저장 프로시저 이름] ( @[인자명] [인자형식], @[인자명] [인자형식], … )ASdeclare @[변수명] [변수 형식] 쿼리문 RETURN 상품을 추가하려면 매개 변수로 상품 이름, 가격, 상..

[ADO.NET] SqlParameter 사용 예 - 저장 프로시저를 이용하여 도서 추가

저장 프로시저 만드는 방법 바로가기 이번에는 저장 프로시저를 이용하는 예를 들어보기로 할게요. 먼저 도서를 추가하는 저장 프로시저를 만듭니다. static void Main(string[] args) { AddBook(".NET 플랫폼", 15000, "홍길동", "9224764583"); AddBook("CSharp", 18000, "홍길동", "9228964583"); } private static void AddBook(string title, int price, string author, string isbn) { string comtext = "AddBook"; string constr = @"Data Source=[서버 이름];Initial Catalog=[DB 명]; User ID=[ID];..

반응형