본문 바로가기

프로그래밍/C#

C# SqLite 사용하기 - 3편

현재 글을 보기전에 1편과 2편을 보지 않았다면 아래링크를 통해서 이전 글을 보고 오길바란다.

 

2019/06/20 - [프로그래밍/C#] - C# SQLite 사용하기 - 1편

 

C# SQLite 사용하기 - 1편

가끔씩 C#을 이용하여 프로그램을 만들 때 간단한 DB를 사용해야 하는 경우가 생긴다. MSSQL Express버전을 사용하기엔 너무 무겁고, 개인적으로 Access를 이용한 MDB를 선호하지 않는다.. 이럴 때 Sqlite를 사용..

maelife.tistory.com

 

 

2019/06/23 - [프로그래밍/C#] - C# SQLite 사용하기 - 2편

 

C# SQLite 사용하기 - 2편

2. SQLite3.exe 실행파일 다운로드 이전 기본 셋팅하는 글을 보지 않고 넘어 왔다면, 이전글 참조 후 다음 글로 넘어 오시길 바랍니다. 2019/06/20 - [프로그래밍/C#] - C# SQLite 사용하기 - 1편 SQLite3.exe를..

maelife.tistory.com

 

그럼 이제 VisualStudio를 실행하여 간단한 응용프로그램을 만들어 보도록 한다.

 

 

 

간단한 Windows 응용프로그램 프로젝트를 생성한다.

 

데이터베이스 접속 테스트를 위한 버튼을 다음과 같이 배치한다.

 

그리고 2편에서 만든 mydb.db 파일을 프로젝트에 추가하도록 한다.

 

 

솔루션탐색기에서 database라는 폴더를 생성하고 폴더안에 mydb.db 파일을 추가한다.

 

배포하기 위해 output Directory를 항상 'Copy always' 설정을 하면 된다.

 

 

다음으로 소스 부분을 보도록 한다.

 

public partial class Form1 : Form
    {
        public Form1()
        {
            InitializeComponent();

            this.btnConncet.Click += btnConncet_Click;
            this.btnSelect.Click += btnSelect_Click;
            this.btnInsert.Click += btnInsert_Click;
            this.btnDelete.Click += btnDelete_Click;
        }

        
        /// <summary>
        /// DB연결
        /// </summary>
        /// <param name="sender"></param>
        /// <param name="e"></param>
        private void btnConncet_Click(object sender, EventArgs e)
        {

            //string strConn = @"Data Source=C:\sqlite\mydb.db";
            string strConn = String.Format("Data Source={0}", Application.StartupPath + @"\database\mydb.db");
            
            using (SQLiteConnection conn = new SQLiteConnection(strConn))
            {
                conn.Open();

                //string sql = "INSERT INTO member VALUES (100, 'Tom')";
                //SQLiteCommand cmd = new SQLiteCommand(sql, conn);
                //cmd.ExecuteNonQuery();

                //cmd.CommandText = "DELETE FROM member WHERE Id=1";
                //cmd.ExecuteNonQuery();

                conn.Close();
            }

        }

        private void btnSelect_Click(object sender, EventArgs e)
        {
            DataSet ds = new DataSet();
            //string strConn = @"Data Source=C:\sqlite\mydb.db";
            string strConn = String.Format("Data Source={0}", Application.StartupPath + @"\database\mydb.db");

            //SQLiteDataAdapter 클래스를 이용 비연결 모드로 데이타 읽기
            string sql = "SELECT * FROM test1";
            var adpt = new SQLiteDataAdapter(sql, strConn);
            adpt.Fill(ds);

        }

        private void btnInsert_Click(object sender, EventArgs e)
        {
            string strConn = String.Format("Data Source={0}", Application.StartupPath + @"\database\mydb.db");

            using (SQLiteConnection conn = new SQLiteConnection(strConn))
            {
                conn.Open();
                string sql = "INSERT INTO test1 VALUES (2, '하이여')";
                SQLiteCommand cmd = new SQLiteCommand(sql, conn);
                cmd.ExecuteNonQuery();

                
            }
        }

        private void btnDelete_Click(object sender, EventArgs e)
        {
            string strConn = String.Format("Data Source={0}", Application.StartupPath + @"\database\mydb.db");

            using (SQLiteConnection conn = new SQLiteConnection(strConn))
            {
                conn.Open();
                string sql = "DELETE FROM test1 WHERE id=1";
                
                SQLiteCommand cmd = new SQLiteCommand(sql, conn);
                cmd.ExecuteNonQuery();
                
            }
        }

 

C#에서 제공하는 SQLiteConnection을 이용하여 데이터베이스에 접속 하고 관리할 수있다.

 

데이터베이스 연결문자열은 실제 프로젝트가 빌드되고 난 후의 위치를 잡아야 하기 때문에

Application.StartupPath 를 이용하여 *.db 파일이 있는 위치를 잡아주었다.

 

이처럼 C# 응용프로그램을 이용하여 무언가를 만들때 간단한 DB가 필요할때 SQLite를 이용하는것도 괜찮은 방법인것 같다.