สอน SQLite ใช้งานฐานข้อมูลแบบออฟไลน์กับ Unity C#

สอน-SQLite
สอน-SQLite

สอน SQLite ใช้งานฐานข้อมูลแบบออฟไลน์กับ Unity C#



SQLite เป็นระบบฐานข้อมูลที่ทำงานในลักษณะออฟไลน์หรือเป็นฐานข้อมูลที่ถูกเก็บไว้ในเครื่อง client นิยมนำไปใช้สำหรับพัฒนาโมบายแอพพลิเคชั่น เราจะสังเกตุเห็นว่าเวลาที่เราเล่นเกมส์มือถือจะสามารถเล่นได้ทั้งแบบออนไลน์และออฟไลน์ ข้อมูลต่าง ๆ จะถูกเก็บแบบออฟไลน์เมื่อเราเล่นเกมส์แบบไม่เชื่อมต่ออินเตอร์เนต และจะถูกอัพเดทไปที่ฐานข้อมูลบน Server เมื่อเราเชื่อมต่ออินเตอร์เนต


สร้าง Unity2D โปรเจค และฐานข้อมูล SQLite

  • 1. สร้างโปรเจค Unity และเลือกไปที่โปรเจคแบบ 2D ตั้งชื่อว่า SQL_lite
  • 2. เปิดโปรแกรม Terminal ไปที่โฟลเด้อโปรเจค SQL_lite/Assets และพิมพ์คำสั่ง เพื่อสร้างฐานข้อมูลชื่อว่า test ดังนี้
  • SQLite3 test.db
  • 3. ฐานข้อมูลจะยังไม่ถูกสร้าง จนกว่าจะมี table มากกว่า 1 ในฐานข้อมูล ฉะนั้นให้เราพิมพ์คำสั่งเพื่อสร้างตารางดังนี้
    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


    สอน-SQLite



เขียน C# ติดต่อกับฐานข้อมูล SQLite

  • 1. ดาวน์โหลดไฟล์ต่าง เพื่อให้สามารถใช้งาน SQLite ได้ที่ http://www.sqlite.org/download.html วางไฟล์ทั้งหมดไว้ในโฟลเด้อ Assets/Plugins


    สอน-SQLite


  • 2. เปิดโปรแกรม Unity3D และโปรเจค SQL_lite จากนั้นคลิกขวาที่หน้าต่าง Assets เลือกไปที่ Create -> C# Script และตั้งชื่อว่า AppController.cs

    สอน-SQLite

  • 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


    สอน-SQLite