.NET FRAMEWORK 123

#094_닷넷(.NET)_ ADO.NET - 비연결 계층 자동화

안녕하세요 삽잡이입니다. 이번 시간에는 자동으로 사용하는 비연결 계층에 대해서 알아보겠습니다. 사실, 지난 시간까지 DataTable을 만들고... Adapter를 추가하고... DataColumn을 추가하고... 등등...DB 한번 쓰기 참 힘들었죠... 그런데, MS에서는 이 비연결 계층 방식으로 DB를 사용할 때에자동으로 '강력한 타입'의 DB 코드를 제공해줍니다. [서버 탐색기] > [데이터 연결]을 통해 사용하고자 하는 DB를 연결하고,데이터 집합이라는 파일을 만듭니다. 'xsd' 확장자의 데이터 집합 파일을 만들게 되면,이제 비연결 계층의 기능을 자동으로 제공해주게 됩니다. [서버 탐색기]로 부터 열어놓은 Table들을 드래그를 통해서 쉽게 만들 수 있게 되지요. 굉장히 편리하지 않습니까? T..

[삽잡이::C#] ADO.NET_View

ADO.NET 에서 View는실제 원본을 보여주고 싶은것이 아니라,보여주고 싶은 데이터들만 보여주고 싶을 때가상의 테이블을 하나 만들어 주는 기능을 제공해줍니다. 즉, 보여주고 싶은 필드만을 지정해주고,View를 통해 해당 필드만을 보여줄 수 있다 이것이지요. 해당 코드는 테이블의 참조를 받아와서 DefirtView 를 사용해서 바인딩하는 과정입니다.

#093_닷넷(.NET)_ ADO.NET - 비연결 계층 코드

안녕하세요 삽잡이입니다. 지난 시간에는 ADO.NET에서 제공하는 비연결 계층에 대해서 알아봤습니다.개념을 중점적으로 알아봤었지요. 이제부터는 실제 코드를 보며, 어떻게 비연결 계층을 다루는지에 대해서 알아보겠습니다. 데이터 컬럼을 만드는 방법은 이와 같습니다. Primary Key는 오직 읽기만 가능하고, 누구나 가지고 있으며, Uniqe해야합니다.따라서, 이와 같이 상태에 대한 설정을 해주고 Primary Key로 Column을 지정해줄 수 있습니다. 또한, Column들을 따로 따로 만들 필요 없이AddRange()를 통해 여러개의 Column들을 한꺼번에 만들 수 있습니다. 물론, DB에서 자동적으로 만들어주지만,공부를 위해 수동적으로 만드는 방법에 대해서 알아보는 것입니다. DataRow는 각각..

#092_닷넷(.NET)_ ADO.NET - 비연결 계층 개념

안녕하세요 삽잡이입니다. 이번 시간 부터는 '비 연결 계층'에 대해서 알아보려고합니다. 연결 계층에서는 DB와 연결해좋지 않은 상태에서는DB 프로그램을 할 수 없었습니다.즉, DB에 대해서 가져오거나 수정등을 할 때에는 직접 테이블에 있는 내용에 명령을 내렸었다 이겁니다.모든 것을 다 데이터 원본을 대상으로 동작했었죠. 비 연결계층은 DB와 연결해놓지 않은 상태에서 DB 프로그램을 하는 것을 말합니다. 개념적으로 표현해보겠습니다. 비 연결 계층은쉽게 말하면, 원본 DB Source를 APP에 복사본을 뜨는 것입니다.즉, DB를 DB 그대로의 메모리상에 DB로 옮긴다는 것이죠.따라서, DB 프로그램을 할 때에는 DB 원본과 이야기를 하는 것이 아닙니다.왜냐? 메모리상에 DB와 이야기할 것이기 때문이지요. ..

#092_닷넷(.NET)_ ADO.NET - 트랙잭션 (Transaction)

안녕하세요 삽잡이입니다. 이번 시간에는 Transaction 에 대해서 알아보려고합니다. 트랜잭션은 DB 뿐만 아니라 다른 곳에서도 많이 사용됩니다.이는 '성공 아니면 실패'. 단 두가지의 상태만을 가질 수 있는 '단위'를 의미합니다. 어중간한 상태가 없습니다.이를 뚜렷하게 하기 위해 만든 단위가 바로 트랜잭션입니다.DB에서는 딱 '두가지 상태만을 갖는 명령어 집합'을 의미합니다. 트랙잭션에 사용되는 명령에는Insert, Delete, Update가 있지요. 돈뽑으러 간다고 생각해봅시다.ATM기에서 돈을 뽑았는데 오류가 발생했습니다.그래서 돈을 못뽑았습니다.그런데, 은행 기록을 보니 이미 돈은 뽑혀있었습니다... 이게 말이 됩니까? 결론적으로,무조건 성공하던가 실패하던가...실패를 했다면, 한번도 시도하..

#091_닷넷(.NET)_ ADO.NET - DB 모델링

안녕하세요 삽잡이입니다. 이번 시간은 DataBase 설계즉, 데이터 베이스 모델링에 대해서 알아보려고합니다. DB 모델링은DB가 규칙성있는 구조를 갖는 데이터 집합을 말합니다.즉, 데이터 모델링이라는 것은 말 그대로 데이터를 모델화 하는 것이지요. 기존에 객체 지향개념에 입각하여해결하고자하는 문제에 대해서 추상화를 사용합니다. DB 모델을 만드는것 또한 추상화를 하는 것입니다. DB 용어에서는 일반적으로, DB 테이블들을 Entity라고 부를 수 있습니다.즉, 어떤 표현하고자하는 문제 내에서 모델을 가지고 와서DB에 표현하면 하나의 Entity가 되는 것이지요. 우리는 사용자가 원하는 문제에 대해서 데이터 베이스로 표현할 수 있습니다. 그런데, 사용자의 요구사항을 DB 테이블로 표현하고자할 때하나의 테..

#090_닷넷(.NET)_ ADO.NET - 자리표시자 & 저장 프로시저

안녕하세요 삽잡이입니다. 이번 시간에는 자리 표시자와 저장 프로시저에 대해서 알아보려고합니다. SQL 명령을 내릴 때 자리 표시자라는 것을 사용할 수 있습니다. 기존의 명령을 때릴 떄와 다르지 않습니까?값 대신, @를 붙인 것입니다. 즉, 지금이 아니라 나중에 값이 온다는 것을 지정해주는 것입니다. Command객체는 내부적으로 Parameters 라는 객체를 가지고 있습니다.이 Parameters 객체에 값을 채워놓을 수 있게 되는 것이지요. Value 역시 지정을 해주고, 타입등을 지정해줍니다.명령을 내릴 떄, Parameters를 통해 명령을 내릴 수 있다는 것입니다. 값을 직접 입력해 얻을 수도 있지만, 이렇게 Parameters를 통해서 얻을 수 있다는 것이죠. 이 자리 표시자는'저장 프로시저'..

#089_닷넷(.NET)_ ADO.NET - DB 라이브러리

안녕하세요 삽잡이입니다. DB를 사용할 때에는즉, DB를 읽고 쓰는 것들은 어플리케이션과 분류하여 사용할 수 있습니다. 어플리케이션이 직접 DB를 읽고 쓰기를 할 수 있는 코드를 넣을 수는 있습니다.하지만, 별로 좋지 않은 코드가 됩니다.DB의 유무를 떠나서 어플리케이션이 동작할 수 있어야하기 때문이죠.따라서, DB 전용 라이브러리를 하나 만듭니다.이를 통해 DB에 접근하게 되면...즉, DB 라이브러리 형식의 객체를 사용하게 되면,어플리케이션은 DB를 사용하는지 모르게 됩니다. DB를 직접 지원할 수도 있지만,어플리케이션에서 만약 DB가 아닌 다른 무언가로 사용하겠다고 한다면,이때는 코드를 전면적으로 수정을 해야합니다. 그런데, DB라이브러리를 사용한다면,똑같은 인터페이스 기능을 지원하되, 메모리상에 ..

#088_닷넷(.NET)_ ADO.NET - 또 다른 ADO.NET 데이터 공급자

안녕하세요 삽잡이입니다. 이전 시간까지 배운 데이터 공급자는 '공용 데이터 공급자'입니다. 복습하는겸... 다시 한번 생각해 보겠습니다.데이터 공급자는 DBMS와 연결을 수행하기 위한 여러가지 형식들의 집합을 의미합니다.데이터를 읽고 쓰기 위한 집합을 의미하죠.따라서 데이터 공급자라고 말하는 것입니다. 아무리 DBMS들이 많더라도, DBMS와 대화하기 위해서공용으로 사용하는 것은 만들어 놓을 수 있지 않겠습니까?내부적으로 실제 사용하는 것은 만들지 못해도,공용으로 사용하는 것들은 만들 수 있지 않겠냐 이겁니다.어차피 다른 DBMS라도 똑같은 개념을 가지고 있을 것이니깐요. 필자가 알아본 것은 추상적 클래스의 개념이라는 것입니다.이를 구현한 것은 해당 DBMS가 했겠지요. 아무튼... 이전 시간까지 공통으..