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; } |
'enuSpace for mars(2017) > Work note(mars)' 카테고리의 다른 글
enuSpace for Mars(2017) - 주요기능 소개 (0) | 2017.01.24 |
---|---|
Windows 10 IoT Core Arduino Firmata 연계 (0) | 2016.10.14 |
Windows 10 IoT Core Remote Server 사용 Tip (0) | 2016.10.06 |
Windows 10 IoT Core에서 WinRT C#용 Chart 그리기 (0) | 2016.10.06 |
Windows 10 IoT Core, Raspberry PI, Arduino and enuSpace Platform (0) | 2016.10.05 |