닷넷 프로그래밍 정복 참고-
SqlDataAdapter Adapt = new SqlDataAdapter ("SELECT * FROM phone" ,con);
DataTeble phone = new DataTable("phone");
SqlCommandBuilder Builder = new SqlCommandBuiler(Adapt);
Adapt.Fill(phone);
dataGridView1.DataSuoruce = phone;
어지러운 쿼리 생성문이 모두 사라졌고 빌더 클래스 생성문 하나가 대신 추가되었다
이것이 가능한 이유는 데이터베이스의 스키마 정보를 통해 SELECT문으로 부터 나머지 쿼리를 자동으로만들수 있기 떄문이다
SELECT 문에 어떤 테이블의 어떤 필드를 읽는다는 정보가 있으므로이 정보대로 수정 쿼리문을 만들면 된다 아무 떄나 빌더를 쓸 수 있는 것은 아니고 다음 조건이 만족되어야 한다
1. 하나의 테이블만 읽어야 하며 JOIN 된 쿼리문은 안된다. 여러개의 테이블을 조인해 버리면 어떤 필드가 어떤 테이블 소속인지 명확하게 구분하기 어렵기 떄문이다
2. 수정 대상을 명확히 지정할 수 있는 기본키가 반드시 있어야 하며 SELECT 문의 필드 리스트에 기본 키가 지정되어야 한다
이 조건이 만족될 떄만 SELECT 문으로부터 나머지 쿼리문이 자동 생성되낟 결국 빌더는 쿼리문 작성을 도와주기는 하되 간단한 쿼리의 경우에만 헷갈리지 않고 잘 동작한다. 쿼리문이 조금만 복잡해지면 정신을 못차리고 항복 선언을 해 버리는데 이럴 떄는 어쩔 수 없이 개발자가 수작업으로 쿼리문을 제공해야한다