Windows 10 IoT Core C# Using SQLite


Step 1. Install the SQLite Visual Stuidio extension for Visual Studio 2015

http://sqlite.org/download.html


Step 2. SQLite.Net-PCL NuGet Installation.


Step 3. Add Reference


Step 4. using SQLite.Net.Attributes;


Step 5. SQLite DB Connection and Query.


SQLite DB Create DB Table Sample.

        public class Configuration

        {

            [PrimaryKey, AutoIncrement]

            public int Id { get; set; }

            public string Attribute { get; set; }

            public string Value { get; set; }

        }


        void LoadSqliteDB()

        {

            String path = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "enuspace.sqlite");

            m_conn = new SQLite.Net.SQLiteConnection(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), path);

            m_conn.CreateTable<Configuration>();

        }

위 코드를 이용하면, 테이블명은 Configuration, 컬럼명은 Id, Attribute, Value에 해당하는 테이블을 생성한다.


SQLite DB Check Table Exists and Create DB Table

        void LoadSqliteDB()

        {

            String path = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "enuspace.sqlite");

            m_conn = new SQLite.Net.SQLiteConnection(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), path);


            if (TableExist("Configuration", m_conn) == false)

                m_conn.CreateTable<Configuration>();

        }


        public bool TableExist(String tableName, SQLite.Net.SQLiteConnection conn)

        {

            String tableExistsQuery = "SELECT name FROM sqlite_master WHERE type='table' AND name='" + tableName + "';";

            String result = conn.ExecuteScalar<string>(tableExistsQuery);


            if (result == tableName)

                return true;

            else

                return false;

        }

프로그램 기동시 테이블의 존재유무를 체크하고자 하는 경우에는 ExecuteScalar를 이용하는 방법이 있다. 이때 리턴받는 문자열 result값에는 테이블이 존재하는 경우, 테이블 이름이 전달되며, 테이블 이름이 없다면 null이 리턴된다.


SQLite DB Table data query

        void LoadSqliteDB()

        {

            String path = Path.Combine(Windows.Storage.ApplicationData.Current.LocalFolder.Path, "enuspace.sqlite");

            m_conn = new SQLite.Net.SQLiteConnection(new SQLite.Net.Platform.WinRT.SQLitePlatformWinRT(), path);


            if (TableExist("Configuration", m_conn) == false)

                m_conn.CreateTable<Configuration>();

            else

            {

                var query = m_conn.Table<Configuration>();

                 foreach (var message in query)

                {

                    String strAttribute = message.Attribute;

                    String strValue = message.Value;

                }

            }

        } 

데이터 테이블 쿼리 요청에 따른 결과값 확인을 수행한다.


SQLite DB Data Insert


        m_conn.Insert(new Configuration() { Attribute = "auto-login", Value = "true" });



SQLite DB Data Update


                        var query = m_conn.Table<Configuration>().Where(x => x.Attribute == "auto-login");

                        var result = query.ToList();

                        if (result.Count == 0)

                            m_conn.Insert(new Configuration() { Attribute = "auto-login", Value = "true" });

                        else

                        {

                            result[0].Value = "true";

                            m_conn.Update(result[0]);

                        }

 


SQLite DB Data Delete


       var query = m_conn.Table<Configuration>().Where(x => x.Attribute == "user-pw");

        var result = query.ToList();

        foreach (var item in result)

        {

              m_conn.Delete(item);

        }

 



SQLite DB 조건을 이용하여 Query 정보를 확인.

 

         var query = m_conn.Table<Configuration>().Where(x => x.Attribute == "auto-login");

         var result = query.ToList();

         foreach (var item in result)

         {

                String test1 = item.Attribute;

                String test2 = item.Value;

        }






+ Recent posts