본 자료는
1. Local DB(IEC-Series / 데스크톱 PC) vs Remote DB 비교
1-1. Local DB를 Remote DB처럼 사용할 수 있는 방법
1-2. Remote DB(IEC-Series → MySQL Server의 DB 접근)
1-3. IEC-Series(Windows CE)와 PC(Windows OS)의 ADO.NET 개발 환경 비교
2. SQL Compact Edition PC 버전 설치 및 참조(데스트톱 PC에서 DB 파일(sdf) 확인 방법)
3. PC에서 DataBase 관련 메서드
3-1. ADO.NET 관련 메서드(데이터베이스 연결 관련)
3-2. ADO.NET 관련 메서드(Sql문 실행 관련)
3-3. CCEADODOTNET 클래스 관련 메서드
4. 예제 프로그램 기능별 동작 설명
순서로 진행합니다.
IEC-Series를 사용하여 DB를 조작하는 방법은 크게 Local DB(IEC-Series / 데스크톱 PC)와 Remote DB로 나뉩니다. 본 문서는 IEC-Series의 SQL Compact Edition으로 작성한 Local DB 파일을 일반 데스크탑 PC에서 접근하여 사용하는 방법에 대해 설명합니다.
1. Local DB(IEC-Series / 데스크톱 PC) vs Remote DB 비교 1-1. Local DB를 Remote DB처럼 사용할 수 있는 방법
데이터베이스(○○○.sdf) 파일을 FTP 또는 Socket으로 복사하여 PC에서 처리
1-2. Remote DB(IEC-Series → MySQL Server의 DB 접근)
IEC-Series에서 외부 MySQL Server의 DB를 접근하여 사용하는 경우
1-3. IEC-Series(Windows CE)와 PC(Windows OS)의 ADO.NET 개발 환경 비교
IEC-Series(Windows CE) | PC(Windows OS) | ||
---|---|---|---|
개발 환경 | IEC266/667-Series를 사용하면서 개발 툴이 Visual Studio 2008인 경우 |
IEC1000-Series를 사용하면서 개발 툴이 Visual Studio 2008인 경우 |
PC(Windows 10)을 사용하면서 개발 툴이 Visual Studio 2008인 경우 |
SQL Compact 설치파일 |
VS2008_SQLMobile3.0_SDK\ SSCE31SDK-ENU.msi |
이미 설치되어 설치 필요 없음 | SSCERuntime-KOR, SSCERuntime-KOR-x64 |
참조파일 32/64bit OS 경로 [Windows 10 OS 기준] |
C:\Program Files\Microsoft SQL Server Compact Edition\v3.1\SDK\bin\wce500\ System.Data.SqlServerCe.dll ※ 기존 파일 참조 제거 후 위의 참조 경로에서 파일 재참조 필요 |
C:\Program Files\Microsoft SQL Server Compact Edition\v3.5\Devices\ System.Data.SqlServerCe.dll ※ 위의 참조 경로에서 파일 참조 필요 |
C:\Program Files (x86)\Microsoft SQL Server Compact Edition\v3.5\Desktop\ System.Data.SqlServerCe.dll ※ 위의 참조 경로에서 파일 참조 필요 |
DB 접근 코드 (모두 동일) |
1. ADO.NET 관련 메서드(데이터베이스 연결 관련) 2. ADO.NET 관련 메서드(Sql문 실행 관련) 3. CCEADODOTNET 클래스 관련 메서드 IEC-Series(Windows CE)에서 사용한 메서드와 파일(CCEADODOTNET.cs)를 PC에서 그대로 사용 가능 |
IEC-Series(Windows CE) | ||
---|---|---|
개발 환경 | IEC266/667-Series를 사용하면서 개발 툴이 Visual Studio 2008인 경우 | IEC1000-Series를 사용하면서 개발 툴이 Visual Studio 2008인 경우 |
SQL Compact 설치파일 |
VS2008_SQLMobile3.0_SDK\ SSCE31SDK-ENU.msi |
이미 설치되어 설치 필요 없음 |
참조파일 32/64bit OS 경로 [Windows 10 OS 기준] |
C:\Program Files\Microsoft
SQL Server Compact Edition\
v3.1\SDK\bin\wce500
\System.Data.SqlServerCe.dll ※ 기존 파일 참조 제거 후 위의 참조 경로에서 파일 재참조 필요 |
C:\Program Files\Microsoft SQL Server Compact
Edition\v3.5\Devices\ System.Data.SqlServerCe.dll ※ 위의 참조 경로에서 파일 참조 필요 |
DB 접근 코드 (모두 동일) |
1. ADO.NET 관련 메서드(데이터 베이스 연결 관련) 2. ADO.NET 관련 메서드(Sql문 실행 관련) 3. CCEADODOTNET 클래스 관련 메서드 IEC-Series(Windows CE)에서 사용한 메서드와 파일(CCEADODOTNET.cs)를 PC에서 그대로 사용 가능 |
PC(Windows OS) | |
---|---|
개발환경 | PC(Windows 10)을 사용하면서 개발 툴이 Visual Studio 2008인 경우 |
SQL Compact 설치파일 |
SSCERuntime-KOR, SSCERuntime-KOR-x64 |
참조파일 32/64bit OS 경로 [Windows 10 OS 기준] |
C:\Program Files
(x86)\Microsoft SQL
Server Compact
Edition\v3.5\Desktop\ System.Data.SqlServerCe.dll ※ 위의 참조 경로에서 파일 참조 필요 |
DB 접근 코드 (모두 동일) |
1. ADO.NET 관련 메서드(데이터 베이스 연결 관련) 2. ADO.NET 관련 메서드(Sql문 실행 관련) 3. CCEADODOTNET 클래스 관련 메서드 IEC-Series(Windows CE)에서 사용한 메서드와 파일(CCEADODOTNET.cs)를 PC에서 그대로 사용 가능 |
2. SQL Compact Edition PC 버전 설치 및 참조(데스트톱 PC에서 DB 파일(sdf) 확인 방법)
IEC-Series에서 작성한 Local DB를 일반 데스크톱 PC에서 보기위해서는 MS SQL Server Compact Edition을 설치해야 합니다.
설치 순서는 SSCERuntime-KOR 설치 → SSCERuntime-KOR-x64 설치 프로젝트에서 SqlServerCe.dll 참조와 같습니다.
- [STEP-1] 설치파일 우클릭 → [설치] 클릭
- [STEP-2] [실행] 클릭
- [STEP-3] [다음] 클릭
- [STEP-4] [동의함] → [다음]
- [STEP-5] [설치] 클릭
- [STEP-6] 설치 중
- [STEP-7] [마침] 클릭
- [STEP-8] SSCERuntime-KOR-x64 설치
※ SSCERuntime-KOR 설치 이후 SSCERuntime-KOR-x64 설치가 필요합니다.
(SSCERuntime-KOR-x64 설치는 SSCERuntime-KOR 설치와 크게 다르지 않습니다. SSCERuntime-KOR-x64 설치 이후 개발 PC의 재부팅이 필요합니다.)
- [STEP-9] SqlServerCe.dll 참조 걸기
MS SQL Server Compact Edition 설치 이후 기능을 사용하기 위해 참조를 걸어주셔야 합니다.
참조할 파일 위치는 Windows 10 OS 기준으로 C:\Program Files (x86)\Microsoft SQL Server Compact Edition\v3.5\Desktop\System.Data.SqlServerCe.dll입니다.
3. PC에서 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 Employee[] SearchData(string strName) |
---|
(인자) string strName : 검색할 사원 이름 (반환값) Employee[] : 레코드 수만큼 사원 정보를 읽어와서 구조체 배열에 동적 할당 |
4. 예제 프로그램 기능별 동작 설명
방법 1. 단일 검색(성명에 이름을 넣기 → 검색 버튼을 클릭)
방법 2. 전체 검색(성명에 * 입력 → 검색 버튼 클릭)
데이터 저장
방법 1. 단일 검색(성명에 이름을 넣기 → 검색 버튼을 클릭)
방법 2. 전체 검색(성명에 * 입력 → 검색 버튼 클릭)
데이터 삭제
방법 1. 성명 이름 입력 → 삭제 버튼 클릭
방법 2. listView1에서 리스트 선택 후 삭제 버튼 클릭