[Article] Database Series : ทดสอบใช้ SQLite 3 กับ .NET Application (Using Sqlite 3 with .NET Application)
03/06/2010 Leave a comment
Agenda :
- Database Series : ทดสอบใช้ SQLite 3 กับ .NET Application (Using SQLite 3 with .NET Application)
- Database Series : มารู้จักกับ OODB กันเถอะ next…
Tools
- Visual Studio 2010/2008 ตัวใดก็ได้ใช้ได้เหมือนกัน
- SQLite3 Precompiled Library – Database Command-Line เลือกเอา for windows http://www.sqlite.org/sqlite-3_6_23_1.zip
- System.Data.SQLite .NET Data Provider (Support VS2008/VS2010) กดเพื่อ download ที่นี่
- SQLite Expert Personal Edition (Free) เอาไว้จัดการดาต้าเบสแบบ GUI กดเพื่อ download ที่นี่
Introduce
พอดีมีถามตอบประเด็นในกระทู้ ก็เลยเอ๊ะ!! เจ้า SQLite หากจะใช้งาน Embedded DB ตัวนี้ ต้องทำอย่างไรบ้างน๊ออ เนื่องจากความสามารถของเจ้า SQLite นี้มีชื่อเสียงระบือไกลไม่ต่างกับเจ้า MySql (เป็นที่กล่าวขานกันได้ด้านดี) บทความนี้เป็นเพียงพื้นฐานแนะนำการใช้งานเท่านั้น เพราะผู้เขียนก็ขอทดสอบเพียงแค่นี้
SQLite Embedded Database
ต้องขอบอกว่า SQLite เหมาะกับงานเล็ก ส่วนมากเหมาะจะเอาไปฝังไว้กับพวกอุปกรณ์ hand held ต่าง ๆ หรือจะทำเป็นดาต้าเบสขนาดย่อม ๆ สำหรับเก็บข้อมูลที่ฝั่ง client ก็ดี ซึ่ง SQLite คือEmbedded Database เป็นระบบ File System ไม่ต้องติดตั้ง ไม่ต้องสตาร์ทเซอร์วิสใดๆ ขึ้นมาทำงาน รองรับมาตรฐาน SQL-92 มีความรวดเร็วในการทำงานสูง กินเมมโมรี่ต่ำ สามารถทำงานได้หลายแพลทฟอร์ม รองรับการทำ Transaction ไม่ต้องตั้งค่ากำหนดค่าการทำงานอะไร เริ่มต้นก็สร้าง Database/ Table ใช้งานได้เลย
Basic SQLite
1. หลังจากได้ดาวน์โหลดเจ้า Command-Line ในหัวข้อ Tools –> 2. สำหรับสร้าง Database สร้าง Table มาแล้วให้ทำการแตก zip ออกมาจะได้ sqlite3.exe
2. วิธีการใช้งาน ก็ให้เปิด command ขึ้นมาใช้งานโดยไปที่ Start –> Run –> พิมพ์ Cmd กด Enter จากนั้นก็ Dir ไปยัง folder ที่แตกไฟล์ในข้อ 1 ไว้
ดังภาพของผู้เขียนแตก sqlite3.exe ไว้ใน folder SQLiteTest ก็จะใช้คำสั่ง >Dir SQLiteTest เข้าไปยังโฟลเดอร์ดังภาพ
3. สร้าง Database แสนง่ายด้วยคำสั่ง C:\SQLiteTest>SQLite3 Customer.db
จะได้คำสั่งรอเตรียมพร้อมสำหรับการสร้าง Table ดังภาพ
4. มาทดลองสร้างเทเบิ้ล และคำสั่ง CRUD พื้นฐานกันดูครับ พิมพ์สคริปเข้าไปตรง ๆ จบสคริปด้วย “;”
4.1 เปิดการใช้งาน Foreign key ด้วยคำสั่ง
>PRAGMA FOREIGN_KEYS = ON;
จากนั้นพิมพ์ script ตามนี้เพื่อสร้างเทเบิ้ลสำหรับ Customer table และ Address table ซึ่งมี Foreign Key ผูกกันไว้
4.2 ทดสอบคำสั่ง INSERT
ทำการ insert data ลง customer table
ทำการ insert data ลง address table
4.3 ทดสอบคำสั่ง Select ในแบบต่าง ๆ
Select * from table
Select with Inner Join
4.4 ทดสอบคำสั่ง Update
4.5 ทดสอบคำสั่ง Delete
เมื่อเสร็จสิ้นการใช้งาน ก็พิมพ์คำสั่ง >.quit เพื่อออกจากการใช้งาน และเมื่อลองกลับไปดูในโฟลเดอร์ SQLiteTest จะพบไฟล์ customer.db ปรากฎอยู่ดังภาพ
SQLite Database Management Tools
เพื่อความง่ายในการจัดการโครงสร้างและแก้ไขข้อมูลต่าง หลาย ๆ ท่านนิยมที่จะใช้ GUI tool ตามแต่ถนัดของแต่ละท่าน ซึ่งของฟรีมีให้ใช้เยอะมากครับ ไม่ว่าจะเป็นWeb Tool, Application Tool, command-line tool ในหัวข้อนี้ขอแนะนำตัวนี้ครับ SQLite Expert Personal Edition เพียงพอสำหรับใช้พัฒนาและทดสอบครับ ใช้งานง่ายด้วยสิ
SQLite Database Driver And Test Drive
สำหรับวิธีการเขียนโปรแกรมติดต่อกับ SQLite นั้น มีหลายวิธีเช่นกันทั้ง C/C++, TCL , ODBC, JDBC, ADO.NET ครบทุกค่าย แต่ผู้เขียนได้ลองค้นหา ADO.NET Data Provider สำหรับใช้งานเจ้า SQLite ปรากฎว่าพบกับ SQLite.NET ADO.NET Provider ใน version 1.0.66.0 นี้จะทำงานกับ VS2008/VS2010 ได้ โดย support ทั้ง Typed DataSet Designer, Entity Framework (ยังทำงานไม่ดีนัก) จึงได้นำมาทดลองใช้งานในบทความนี้
ให้ดาวน์โหลดและทำการติดตั้งได้เลยครับ จากนั้นเปิด Visual Studio ขึ้นมาเพื่อทดสอบเขียนโค้ดเพื่อทำงานกับ Customer.db ที่เราสร้างไว้ในขั้นตอนก่อนหน้านี้
ซึ่งเข้าไปเอา Driver ได้ที่นี่ C:\Program Files (x86)\SQLite.NET\bin\System.Data.SQLite.dll
ดูรูปแบบของ connection string ได้ที่นี่ http://www.connectionstrings.com/sqlite ในส่วน sqlite.net
จากนั้นก็เขียน Code ติดต่อ Database ตามปกติ
|
using System; namespace SQLiteTester private string constr = @"data source=Customer.db"; //กรณีโปรแกรม exe อยู่ folder เดียวกับ customer.db private void Form1_Load(object sender, EventArgs e) public DataSet GetCustomerData() |
ผลลัพธ์เมื่อกด RUN (F5)
ปล. สำหรับภาษาไทยให้ใช้พวก NVARCHAR, NCHAR จะรองรับ unicode language ได้
สามารถ download source code ได้ที่นี่
Chalermpon Areepong Nine (นาย)
Microsoft MVP Thailand ASP.NET
Greatfriends.biz Community Leader
Email : nine_biz-talk.net at hotmail dot com
Blog : http://nine-biztalk-net.spaces.live.com/blog
















