MySQL ตอนที่ 1 : Windows Store Apps ติดต่อกับ MySQL Database (C#)
MySQL ตอนที่ 1 : Windows Store Apps ติดต่อกับ MySQL Database (C#) รูปแบบการทำงานของ Windows Store Apps จะแตกต่างกับ Desktop Application หรือ Application อื่นทั่ว ๆ ไปที่เขียนด้วยชุดคำสั่ง .NET Framework โดยใน Windows Store Apps จะมีการใช้ชุด API ของ WinRT (Desktop App จะใช้ Win 32 API) ซึ่งเป็น Platform ใหม่ของ Application ที่จะทำงานในระบบปฏิบัติการ Windows 8 เป็นต้นไป ซึ่งรองรับได้ทั้ง PC / Desktop ที่ติดตั้ง Windows 8 และอุปกรณ์ประเภท Tablet ด้วยเหตุผลนี้เอง Application ที่พัฒนาด้วย Windows Store Apps ซึ่งใช้ชุดคำสั่งของ WinRT API จะมีความกระทัดรัด ไฟล์ Source ต่าง ๆ ของโปรแกรม จะถูกรวมเป็น Package เดียวที่สามารถติดตั้งง่าย และเสร็จสิ้นภายในตัวเอง โดยไม่ต้องไปอาสัยการติดตั้งโปรแกรมอื่น ๆ มาเกี่ยวข้อง ฉะนั้นการเขียนโปรแกรมที่ต้องอาศัยพวก Database ต่าง ๆ จะถูกตัดออก ถ้าให้เข้าใจง่าย ๆ คือ NameSpace ของ System.Data และชุดคำสั่งของ ADO.Net ที่จะใช้ติดต่อกับ Database จะไม่มีอีกแล้ว ซึ่งจะเป็นเหตุผลที่เราจะต้องเปลี่ยนรูปแบบการใช้ Database มาเป็นแบบ Database ที่เป็น Online กันมากขึ้น โดยอาจจะอาศัยการติดต่อผ่านพวก Web Service API , หรือ REST API เป็นต้น
แต่ก็ใช่ว่าจะไม่สามารถเขียนติดต่อกับ Database ได้เลยเพราะ MySQL ได้มีการพัฒนาชุดคำสั่ง API ไว้รองรับ WinRT โดยเฉพาะ ชื่อว่า MySql.Data.RT ซึ่งสามารถเขียน Windows Store Apps ติดต่อกับ Database ทั้งที่อยู่บน Local หรือจะติดต่อกับ MySQL Database แบบ Online ที่เชื่อมต่อผ่านระบบ Internet ก็ได้เช่นเดียวกัน
สิ่งที่จำเป็นต้องมีสำหรับการเขียน Windows Store Apps เพื่อติดต่อกับ MySQL Database
MySQL Connector/NET 6.7 or later
MySql Server 5.1 or above
ในขั้นแรกให้ติดตั้ง MySQL Database และ MySQL Connector ให้เรียบร้อยซะก่อน หรือกรณีที่มี MySQL อยู่แล้วก็ไม่จำเป็น ให้ติดตั้งเฉพาะ MySQL Connector/NET
Download Connector/Net
http://dev.mysql.com/downloads/connector/net/
จากนั้นไปที่โปรแกรม Visual Studio บน Windows Store Apps โปรเจคที่สร้างขึ้น
using System;
using System.Collections.Generic;
using System.IO;
using System.Linq;
using Windows.Devices.Geolocation;
using Windows.Foundation;
using Windows.Foundation.Collections;
using Windows.UI.Core;
using Windows.UI.Xaml;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Controls.Primitives;
using Windows.UI.Xaml.Data;
using Windows.UI.Xaml.Input;
using Windows.UI.Xaml.Media;
using Windows.UI.Xaml.Navigation;
using System.Text;
using MySql.Data.MySqlClient;
// The Blank Page item template is documented at http://go.microsoft.com/fwlink/?LinkId=234238
namespace WindowsStoreApps
{
/// <summary>
/// An empty page that can be used on its own or navigated to within a Frame.
/// </summary>
///
public sealed partial class MainPage : Page
{
public MainPage()
{
this.InitializeComponent();
}
protected override void OnNavigatedTo(NavigationEventArgs e)
{
string strConnection = "server=localhost;database=mydatabase;uid=root;password=root;";
using (MySqlConnection connection = new MySqlConnection(strConnection))
{
connection.Open();
StringBuilder sb = new StringBuilder();
MySqlCommand cmd = new MySqlCommand("SELECT * FROM member", connection);
using (MySqlDataReader reader = cmd.ExecuteReader())
{
while (reader.Read())
{
sb.AppendLine(reader.GetString("Name"));
}
}
this.lblResult.Text = sb.ToString();
}
}
}
}
Screenshot
ตัวอย่างการอ่านข้อมูลจาก MySQL Database มาแสดงบนหน้าจอของ Windows Store Apps