소년포비의 세계정복!!

[C#] SQL Server Compact 3.5 를 활용한 로컬 데이터베이스 연결하기 본문

프로그램 세상/C#

[C#] SQL Server Compact 3.5 를 활용한 로컬 데이터베이스 연결하기

소년포비 2009. 10. 2. 01:07

작은 응용프로그램이나 모바일 프로그램을 개발할때 DB가 필요할때가 있습니다. 그럴땐 보통 엑세스의 MDB나
SqlLite를 많이 쓰시는데요. Microsoft사의 SQL Server Compact 3.5 라는것도 있습니다. 확장자는 SDF로 되어있는
로컬데이터베이스입니다.

MSDN의 관련 자료는

http://msdn.microsoft.com/ko-kr/library/aa983321.aspx

위 페이지로 들어가시면 자세한 설명이 나와있습니다.

읽어보시면 드래그앤 드롭으로 윈폼에서 쉽게 DB를 연결할 수 있습니다.

하지만 순수하게 SQL 쿼리를 날려서 데이터를 가져오는 방법은 나와있지 않아서 혹시 필요하신분들이 계시면

도움이 되었으면 좋겠습니다. 우선 위 페이지를 보면서 DB를 프로젝트에 생성하고, 테스트용 테이블을 하나 만듭니다.

데이터베이스의 파일 이름은 "DB.SDF"입니다.

저는 Test테이블에 Name이라는 nvarchar형의 컬럼을 하나 추가했습니다.

01.using System;
02.using System.Data.SqlServerCe;
03.  
04.namespace SDFSampleCS
05.{
06.    class Program
07.    {
08.        static void Main(string[] args)
09.        {
10.            // 데이터베이스 연결
11.            string connectionString = @"Data Source=|DataDirectory|\DB.sdf";
12.            SqlCeConnection con = new SqlCeConnection(connectionString);
13.            con.Open();
14.  
15.            // 데이터베이스 커맨드 생성
16.            SqlCeCommand cmd = new SqlCeCommand();
17.              
18.            // 커맨드에 커넥션을 연결
19.            cmd.Connection = con;
20.              
21.            // 트랜잭션 생성
22.            SqlCeTransaction tran = con.BeginTransaction();
23.            cmd.Transaction = tran;
24.  
25.  
26.            // 쿼리 생성 : Insert 쿼리
27.            cmd.CommandText = "INSERT INTO Test VALUES('소녀시대')";
28.  
29.            // 쿼리 실행
30.            cmd.ExecuteNonQuery();
31.  
32.            // 반복으로 몇개 더 넣어보겠습니다.
33.            cmd.CommandText = "INSERT INTO Test VALUES('원더걸스')";
34.            cmd.ExecuteNonQuery();
35.  
36.            cmd.CommandText = "INSERT INTO Test VALUES('카라')";
37.            cmd.ExecuteNonQuery();
38.  
39.            // 커밋
40.            tran.Commit();
41.              
42.            // SELECT 쿼리로 변경
43.            cmd.CommandText = "SELECT * FROM Test";
44.  
45.            // DataReader에 쿼리 결과값 저장
46.            SqlCeDataReader reader = cmd.ExecuteReader();
47.              
48.            // 결과값 출력
49.            while (reader.Read())
50.            {
51.                Console.WriteLine(reader["Name"]);
52.            }
53.              
54.            con.Close();
55.        }
56.    }
57.}

'프로그램 세상 > C#' 카테고리의 다른 글

C# 오라클 DB 연결 예제  (0) 2009.10.02
[C#] 윈도우즈의 폴더 경로 가져오기  (0) 2009.10.02
Process Kill 하기  (0) 2009.10.02
C# 원격 네트워크 드라이브 연결  (0) 2009.10.02
C# 소켓통신 예제 소스  (0) 2009.09.30