สอน SQLite ใช้งานฐานข้อมูลแบบออฟไลน์กับ Unity C#
SQLite เป็นระบบฐานข้อมูลที่ทำงานในลักษณะออฟไลน์หรือเป็นฐานข้อมูลที่ถูกเก็บไว้ในเครื่อง client นิยมนำไปใช้สำหรับพัฒนาโมบายแอพพลิเคชั่น เราจะสังเกตุเห็นว่าเวลาที่เราเล่นเกมส์มือถือจะสามารถเล่นได้ทั้งแบบออนไลน์และออฟไลน์ ข้อมูลต่าง ๆ จะถูกเก็บแบบออฟไลน์เมื่อเราเล่นเกมส์แบบไม่เชื่อมต่ออินเตอร์เนต และจะถูกอัพเดทไปที่ฐานข้อมูลบน Server เมื่อเราเชื่อมต่ออินเตอร์เนต
สร้าง Unity2D โปรเจค และฐานข้อมูล SQLite
- 1. สร้างโปรเจค Unity และเลือกไปที่โปรเจคแบบ 2D ตั้งชื่อว่า SQL_lite
- 2. เปิดโปรแกรม Terminal ไปที่โฟลเด้อโปรเจค SQL_lite/Assets และพิมพ์คำสั่ง เพื่อสร้างฐานข้อมูลชื่อว่า test ดังนี้
SQLite3 test.db
CREATE TABLE COMPANY( ID INT PRIMARY KEY NOT NULL, NAME TEXT NOT NULL );
จะเห็นว่ามีไฟล์ฐานข้อมูลชื่อว่า test.db ถูกสร้างขึ้นมาแล้ว อยู่ใน SQL_lite/Assets/test.db
ใช้คำสั่ง insert เพื่อเพิ่มข้อมูลเข้าไปในตาราง COMPANY เขียนคำสั่งดังนี้
INSERT INTO COMPANY (ID,NAME) VALUES (1, 'Witoon Pomipon');
ตัวอย่างคำสั่งในโปรแกรม Terminal
เขียน C# ติดต่อกับฐานข้อมูล SQLite
- 1. ดาวน์โหลดไฟล์ต่าง เพื่อให้สามารถใช้งาน SQLite ได้ที่ http://www.sqlite.org/download.html วางไฟล์ทั้งหมดไว้ในโฟลเด้อ Assets/Plugins
- 2. เปิดโปรแกรม Unity3D และโปรเจค SQL_lite จากนั้นคลิกขวาที่หน้าต่าง Assets เลือกไปที่ Create -> C# Script และตั้งชื่อว่า AppController.cs
- 3. ดับเบิ้ลคลิกที่ไฟล์ AppController.cs ระบบจะเปิดโปรกรม MonoDevelop ขึ้นมาให้ทดลองเขียนโปรแกรมเพื่อติดต่อกับฐานข้อมูล test.db ดังนี้
using UnityEngine; using System.Collections; using System.Data; using Mono.Data.SqliteClient; public class AppController : MonoBehaviour { void Start () { connect(); } void connect(){ string conn = "URI=file:test.db"; // ชี้ไปที่ฐานข้อมูล IDbConnection dbconn = new SqliteConnection(conn); IDbCommand dbcmd = dbconn.CreateCommand(); dbconn.Open(); // เปิดการเชื่อมต่อ string sqlQuery = "SELECT name FROM COMPANY"; // เลือก name จากตาราง COMPANY dbcmd.CommandText = sqlQuery; IDataReader reader = dbcmd.ExecuteReader(); // เริ่ม Execute while (reader.Read()) { string name = reader.GetString(0); Debug.Log("name ="+name); // แสดง name ใน console } reader.Close(); reader = null; dbcmd.Dispose(); dbcmd = null; dbconn.Close(); dbconn = null; } }
- 4. จะเห็นว่าเราได้ข้อมูล name จากตาราง COMPANY ที่เรา insert ไว้ก่อนหน้านี้แสดงออกมาทางหน้าต่าง console