본문 바로가기

프로그래밍&IT/SQLite3

C# & SQLite3 연결하기 - C# 프로젝트 생성부터 테스트완료

이번엔

- C# 프로젝트 만들고 준비작업

- test까지..

의 단계로 완료하겠습니다.


2. C# 프로젝트만들고 준비작업

간단한 테스트를 위한 콘솔프로젝트를 만듭니다.

그리고 필요한 .dll들을 임포트시킵니다.

솔루션 탐색기 -> 참조 -> 참조추가를 합니다.


(저같은 경우는 필요한 dll파일들을 모두 새로 생성한 프로젝트에 카피를 했습니다.)

가장 필요한 System.Data.SQLite 만 일단 추가를 했습니다.


그리고 만들어두었던 test.db도 해당 프로젝트에 복사를 했습니다.

(기존에 생성한 db에 있는 테이블의 내용을 불러올것입니다.)


그런데, 제 PC가 64비트 윈도우여서 그런지 몰라도,

추가로 설치해야 할 dll 인 ' SQLite.Interop.dll ' 참조추가를 할 수 없더군요...

그리고 이 dll 없이는 

그리고 아래와 같은 예외가 발생하면서 진행을 할 수 없었습니다.

[제가 저번에 SQLite3 & C# 프로그램만들기에 실패한 주 요인]


이에 대해 2가지 조치를 해야할것이,

1) dll이 import될 위치 (저같은 경우 솔루션구성을 Debug로 해놨기때문에, bin/Debug )에

직접 SQLite.Interop.dll 을 복사합니다.


2) 그리고 빌드에서 플랫폼 대상을 바꿔줘야 합니다.

저같은 경우는 플랫폼 대상을 Any CPU로 바꿔줬습니다.


일단 위 2개 사항을 바꾸고선

아래의 코딩을 완료하면...

3.test 소스

using System.Data.SQLite;    //네임스페이스를 불러옵니다.


namespace ConEx09

{

    class Program

    {

// 아래 내용으로 코딩합니다.

        static void Main(string[] args)

        {

            string strConn = @"Data Source=C:\Users\yh\Documents\Visual Studio 2010\Projects\ConEx09\ConEx09\test.db";    // 데이터를 저장해놓은 db를 불러옴.


            SQLiteConnection conn = new SQLiteConnection(strConn);

            conn.Open();        //connection open

            SQLiteCommand cmd = new SQLiteCommand();

            cmd.Connection = conn;

            cmd.CommandText = "select * from tbl_test";


            SQLiteDataReader sdr = cmd.ExecuteReader();

            while (sdr.Read())

            {

                int ID = Convert.ToInt32(sdr["id"]);

                string name = sdr["name"] as string;

                Console.WriteLine("ID:{0}, Name:{1}", ID, name);

            }

            conn.Close();

            Console.Read();

        }

    }

}


아래 실행 결과처럼
test.db (파일형 database)에 있는
테이블 (tbl_test라는 이름)에 있는 내용을 불러올수있습니다.


사실 이것보다 더 좋은 내용이 많겠지만

제가 실습해본 내용은 이렇습니다.


여기까지 연결만되면 그 다음부터는

C# database & ado.net 프로그래밍이 되므로..