본 자료는
1. 프로그램 동작 전 준비사항(설치환경에 따른 필요 설치 파일)
2. SQL Compact 버전 설치 및 재참조(IEC667-Series)
2-1. IEC667-Series를 사용하면서 개발 툴이 Visual Studio 2008인 경우 SQL Compact 설치 및 재참조 방법
3. Windows CE에서 DataBase 관련 메서드
3-1. ADO.NET 관련 메서드(데이터베이스 연결 관련)
3-2. ADO.NET 관련 메서드(Sql문 실행 관련)
3-3. CCEADODOTNET 클래스 관련 메서드
4. 프로그램 전체 소스
순서로 진행합니다.
본 자료는 Windows CE에서 ADO.NET를 활용하여 로컬 데이터베이스(Local Database)를 구축하는 방법을 설명하는 자료입니다.
ADO.NET는 .NET(.Net Compact Framework)환경에서 데이터베이스를 편리하게 사용할 수 있는 기술입니다.
IEC-Series는 기본적으로 ADO.NET를 내장하고 있어 .NET Compact Framework 기반에서 Database 접근을 바로 할 수 있습니다.
본 문서와 함께 SQL 문법을 이해하기 위해 관련 서적을 병행 학습하시면 좋습니다.
1. 프로그램 동작 전 준비사항(설치 환경에 따른 필요 설치 파일) ※ IEC-Series에 포함된 SQL Compact 버전 정리
제품별 | IEC667 | IEC1000 |
---|---|---|
SQL Compact 버전 |
버전3.1 설치됨 |
버전3.5 설치됨 |
제품별 | IEC667 | IEC1000 |
---|---|---|
SQL Compact 버전 |
버전3.1 설치됨 |
버전3.5 설치됨 |
※ Visual Studio 버전별로 포함된 SQL Compact 버전 정리
버전별 | Visual Studio 2008 |
---|---|
SQL Compact 버전 |
버전3.5 설치됨 |
그러므로 IEC-Series 제품에 따라서 SQL Compact 버전의 차이로 SQL Compact 설치 및 참조 수정 작업이 필요합니다.
하단의 표를 참고하여 개발 PC에 SQL Compact 설치 및 참조 수정을 하시기 바랍니다.
모델 | Visual Studio | SQL Compact 버전 | 사용하는 SDF 파일 | 개발 PC의 OS가 32/64비트인 경우 | |
---|---|---|---|---|---|
32비트 | 64비트 | ||||
IEC667 | 2008 |
3.5버전이 설치되어 |
SQL CE |
C:\Program Files\ |
C:\Program Files(x86)\ |
IEC1000 |
3.5버전이 설치됨 참조 변경 없음 |
SQL CE |
C:\Program Files\ |
C:\Program Files(x86)\ |
모델 | Visual Studio |
SQL Compact 버전 |
사용하는 SDF 파일 |
---|---|---|---|
IEC 667 |
2008 |
3.5버전이 |
SQL CE |
IEC 1000 |
2008 |
3.5버전이 |
SQL CE |
모델별 | Visual Studio |
개발 PC의 OS가 32/64비트인 경우 |
|
---|---|---|---|
32비트 | 64비트 | ||
IEC 667 |
2008 |
C:\Program Files\ |
C:\Program Files(x86)\ |
IEC 1000 |
2008 |
C:\Program Files\ |
C:\Program Files(x86)\ |
- [STEP-1] 첨부파일을 다운로드 후 압축 해제하고 VS2008_SQLMobile3.0_SDK\SSCE31SDK-ENU.msi 파일을 더블 클릭
- [STEP-2] 설치를 위해 Install을 클릭
- [STEP-3] 설치가 완료된 다음 System.Data.SqlServerCe 제거
- [STEP-4] SqlServerCe 재참조
public bool AddData(Employee emp) 또는 public bool DeleteData(string strName) : 메서드 내부에서 쿼리 수행을 위해 comm.ExecuteNonQuery() 메서드를 호출하는 경우 Close() 메서드가 호출되어야 변경된 데이터 베이스의 내용이 물리적인 파일에 기록됩니다. 따라서 장치(IEC-Series)의 전원이 임의로 Off될 수 있는 시스템에서는 데이터 베이스의 변경이 발생할 경우 m_conn.Close() 메서드를 반드시 호출하시기 바랍니다. |
---|
1. 본 예제의 실행에 앞서 데이터베이스 파일 및 경로를 설정하신 경로 및 위치에 데이터베이스 파일을 복사하시기 바랍니다. 또한 빌드 후 실행 시 본 예제의 빌드 폴더에 생성된 System.Data.SqlServerCe.dll 파일을 실행파일 폴더에 복사해주시기 바랍니다. 2. 예제 데이터베이스는 DataBase 폴더의 emp.sdf 파일을 사용하시기 바랍니다. 3. IEC667-Series에서 테스트하실 경우 OS 빌드 버전이 3이하면 첨부된 예제의 SQLMobile_Setup 설치파일을 설치하시기 바랍니다. 설치파일은 총 3개이며 확장자가 cab인 경우 설치 시 설치 경로는 반드시 Flash Disk로 설치해야 합니다. 설치 후 바탕화면의 RegistrySave를 실행하셔서 레지스트리 정보를 저장하시기 바랍니다. 4. 개발 Tool이 Visual Studio 2008인 경우 SQL Mobile 3.5버전이 개발 언어에 기본으로 포함되어 있습니다. 따라서 본 예제의 VS2008_SQLMobile3.0_SDK 폴더에서 SSCE31SDK-ENU.msi파일을 반드시 설치하시기 바랍니다. 또한 솔루션 탐색이의 참조에서 “System.Data.SqlServerCe”를 제거 후 SQL Mobile 3.1가 설치된 폴더(아래 경로 참조)에서 재참조하시기 바랍니다. [SQL Mobile 참조 경로] C:\Program Files(x86)\Microsoft SQL Server Compact Edition\v3.1\SDK\bin\wce500\System.Data.SqlServerCe.dll |
3. Windows CE에서 DataBase 관련 메서드 3-1. ADO.NET 관련 메서드(데이터베이스 연결 관련)
지정된 연결 문자열을 사용하여 SqlCeConnection 클래스의 새 인스턴스를 초기화합니다. public SqlCeConnection(string connectionString) |
---|
(인자) connectionString : 데이터베이스를 오픈하기 위해 사용하는 연결 스트링 |
ConnectionString이 지정하는 속성 설정을 사용하여 데이터베이스 연결 public override void Open() |
---|
(인자)없음 |
SqlCeConnection.Close() : 데이터 소스에 대한 연결을 닫음 public override void Close() |
---|
(인자) 없음 |
3-2. ADO.NET 관련 메서드(Sql문 실행 관련)
데이터 원본에 대해 실행할 SQL문을 나타냅니다. public SqlCeCommand(string commandText, SqlCeConnection connection) |
---|
(인자) commandText : 쿼리 구문 (인자) connection : 데이터베이스 커넥션 객체 |
연결에 대한 Transact-SQL문을 실행하고 영향을 받는 행의 수를 반환 보통 결과를 받을 필요가 없는 Query문에 많이 사용. (Insert, Update문에 많이 사용) public override int ExecuteNonQuery() |
---|
(인자) 없음 (반환값) int : 영향을 받은 행의 수입니다. |
SqlCeCommand.ExecuteReader() : CommandText를 Connection으로 보내고 SqlDataReader를 작성합니다. public SqlCeDataReader ExecuteReader() |
---|
(인자) 없음 |
SqlDataReader.Read() : SqlDataReader를 다음 레코드로 이동 public override bool Read() |
---|
(인자) 없음 |
SqlDataReader.Close() : SqlDataReader의 객체를 닫음 public override void Close() |
---|
(인자) 없음 |
SqlCECommand.Dispose() 데이터 원본에 대한 연결을 닫음 public void Dispose() |
---|
(인자) 없음 |
3-3. CCEADODOTNET 클래스 관련 메서드
데이터베이스 연결 처리 public bool Connection() |
---|
(인자) 없음 (반환값) bool : 데이터베이스 연결 시 True 반환 |
연결된 데이터베이스를 Open private bool Open() |
---|
(인자) 없음 (반환값) bool : 데이터베이스 Open 성공 시 True 반환 |
데이터베이스에 사원 정보 입력 public bool AddData(Employee emp) |
---|
(인자) Employee emp : 데이터베이스 처리용 사원 자료 구조 (반환값) bool : 사원 정보 입력 성공 시 True 반환 |
데이터베이스에 사원 정보 삭제 public bool DeleteData(string strName) |
---|
(인자) string strName : 삭제할 사원 이름 (반환값) bool : 사원 정보 삭제 성공 시 True 반환 |
데이터베이스에서 사원 정보를 검색 public DataSet SearchData(string strName) |
---|
(인자) string strName : 검색할 사원 이름 (반환값) DataSet : 레코드 수만큼 사원 정보를 읽어와서 DataSet에 동적 할당 |