C# 에서 SQLite 사용하기 - System.Data.SQLite

 닷넷 프레임워크에서는 기본적으로 SQLite를 지원하지 않는 듯 하네요. 이번 포스팅은 C#에서 SQLite를 사용할 수 있게 해주는 System.Data.SQLite에 대한 것을 정리해 봅니다.

 System.Data.SQLite Download 페이지에 가셔서 각자 개발하고 있는 환경에 맞는 OS 버전과 닷넷 버전용 설치파일을 다운로드 후 설치해줍니다.

 진행중인 C# 프로젝트에서 References 마우스 우클릭 -> Add Reference를 선택하신 후 Browse 버튼을 눌러 위와 같이 설치된 System.Data.SQLite.dll 을 참조로 추가해줍니다.


using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
// SQLite 사용하기 위해
using System.Data.SQLite;

namespace SqliteCSharp
{
    class Program
    {
        static void Main(string[] args)
        {
            string strConn = @"Data Source=D:\testdb.db";

            using (SQLiteConnection conn = new SQLiteConnection(strConn))
            {
                conn.Open();
             
                string strSQL = "CREATE TABLE member (name string)";
                SQLiteCommand sqlcmd = new SQLiteCommand(strSQL, conn);
                sqlcmd.ExecuteNonQuery();
                sqlcmd.Dispose();

                strSQL = "INSERT INTO member VALUES ('WestwoodForever SQLite C# Sample.')";
                sqlcmd = new SQLiteCommand(strSQL, conn);
                sqlcmd.ExecuteNonQuery();
                sqlcmd.Dispose();

                strSQL = "SELECT * FROM member";
                sqlcmd = new SQLiteCommand(strSQL, conn);
                SQLiteDataReader rd = sqlcmd.ExecuteReader();
                sqlcmd.Dispose();
                while (rd.Read())
                {
                    Console.WriteLine(rd["name"]);
                }
                rd.Close();
             
            }
        }
    }
}

 간단하게 SQLite를 사용해 db 파일을 만들어 테이블을 생성 후 값을 입력하고 얻어와서 출력하는 샘플 코드입니다.

 실행 결과입니다.

 런타임에 An unhandled exception of type 'System.BadImageFormatException' occurred in mscorlib.dll 에러가 발생할 수 있으니 링크를 참고하시기 바랍니다.

 아래 C#을 지원하는 몇가지 SQLite 모듈들 링크입니다.

댓글

이 블로그의 인기 게시물

'xxx.exe' 프로그램을 시작할 수 없습니다. 지정된 파일을 찾을 수 없습니다.

goorm IDE에서 node.js 프로젝트로 Hello World Simple Server 만들어 띄워보기

애드센스 수익을 웨스턴 유니온으로 수표대신 현금으로 지급 받아보자.