บ่อยครั้ง ที่เราไม่ได้เลือกใช้ Data base ของค่ายไมโครซอฟท์ แต่เราเลือกที่จะติดต่อกับฐานข้อมูล ของค่ายอื่น ด้วยเหตุผลบางประการ ในกรณี เราต้องเช็คดูว่า Visual C# ของเรามี Class ที่รองรับการเชื่อมต่อดาต้าเบส ค่ายนั้นๆ หรือไม่ หากไม่ได้มี Class รองรับการเชื่อมต่อฐานข้อมูลค่ายนั้นๆ ไว้แล้ว เราต้องมองหา ตัวเลือกอื่นๆ วันนี้ เรามาดูตัวอย่างในการทำให้โปรแกรม Visual C# เชือมต่อกับ MySQL ผ่าน MySQL Connector/NET
เริ่มจาก ดาวน์โหลด MySQL connector/NET ก่อน เอาเวอร์ชั่น ล่าสุดก็ได้ครับ แต่ในขณะนี้ ผมเลือกเวอร์ชั่น Connector/Net 6.4.4
ทำการติดตั้งไฟล์ เหมือนโปรแกรม อื่นๆ ทั่วไป ครับ ในที่นี้ ผมเลือกแบบ Complete กด Next กดไปเรื่อยๆ จนโปรแกรมติดตั้งเสร็จ
มาถึงจุดนี้ อย่างแรกที่เราต้องตกลงกันก่อน ก็คือ คุณจะต้องมี
- ดาต้าเบส MySQL ที่ติดตั้งไว้แล้ว และสามารถเชื่อมต่อฐานข้อมูลได้อย่างไม่มีปัญหา (เช็คจากโปรแกรมอื่น เรียบร้อยแล้ว)
- โปรแกรม Visual C# 2008 express ที่ติดตั้งไว้แล้ว
สร้างโปรเจค Windows Form Application ตั้งชื่อตามใจชอบ ในที่นี้ ผมตั้งชื่อเป็น MySQL_connection_test
จากนั้นให้ทำการ Add reference เข้ามาที่โปรเจคของเราก่อน เพื่อเป็นการดึง Library dll ของ CMySQL เข้ามาใช้งานกับโปรเจคของเรา ไปที่เมนู Project –> Add reference ทีแท๊ป NET เลือนลงมาหา MySql.Data แล้วกด OK
กลับมาที่หน้า Form ทำการสร้างปุ่ม button ลงบน Form จากนั้น ทำการกำหนด Event ให้กับปุ่ม ดับเบิลคลิกเข้าไปที่ปุ่ม แล้ว เขียนโค๊ด
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using MySql.Data;
using MySql.Data.MySqlClient;
namespace MySQL_connection_test
{
public partial class Form1 : Form
{
MySql.Data.MySqlClient.MySqlConnection conn;
string myConnectionString = "server=localhost;uid=root;pwd=merlin;database=test;";
public Form1()
{
InitializeComponent();
}
private void button1_Click(object sender, EventArgs e)
{
try
{
conn = new MySql.Data.MySqlClient.MySqlConnection();
conn.ConnectionString = myConnectionString;
conn.Open();
MessageBox.Show(conn.State.ToString());
conn.Close();
conn.Dispose();
}
catch (MySql.Data.MySqlClient.MySqlException ex)
{
MessageBox.Show(ex.Message);
}
}
}
}
สิ่งที่ต้องเพิ่มเข้าไปคือ อ้างถึง namespace ของ Mysql.Data
using MySql.Data;
using MySql.Data.MySqlClient;
ทำการสร้างออปเจค และสร้าง ตัวแปรสตริง เพื่อเป็นค่ากำหนดค่าของออปเจค
MySql.Data.MySqlClient.MySqlConnection conn;string myConnectionString = "server=localhost;uid=root;pwd=merlin;database=test;";
รูปแบบของสตริง ประกอบไปด้วยคีย์เวิร์ด key=value แต่ละคีย์เวิร์ด แยกกันด้วยเครื่องหมายเซมิโคล่อน “ ; ”
- server=localhost // กำหนดที่อยู่ของ server ของฐานข้อมูล ในกรณีเชื่อมต่อเครื่องเราเอง
- uid=root // ชื่อของ user ที่ทำการเชื่อมต่อ ในที่นี้ผมได้กำหนดเป็น root
- pwd=merlin // พาสเวิร์ดของ root ที่ทำการเชื่อมต่อ
- database=test // ชื่อฐานข้อมูล
ทดลองรันดูครับ กดไปที่ปุ่มที่เราสร้างไว้ จะปรากฏ messagebox แจ้งให้ทราบว่า สถานะการเชื่อมต่อของเรากับฐานข้อมูล ถูกเปิด แล้ว แสดงว่า เราสามารถที่จะติดต่อกับฐานข้อมูลได้สำเร็จ
ถ้ายังทำไม่ได้ พยายามแก้ไข เช็คเรื่องการเชื่อมต่อฐานข้อมูลก่อน ว่าสามารถเชื่อมต่อด้วย use/password นี้ ได้จริงๆ ไหม ด้วยโปรแกรมการเชื่อมต่อตัวอื่น เช่น MySqlFront หรือ phpmyadmin เพื่อให้แน่ใจว่า myConnectionString ถูกต้องแล้ว
เพื่อนๆ สามารถศึกษาเพิ่มเติมได้ ตามคู่มือ ที่อยู่ในโฟลเดอร์ที่ได้ติดตั้งไว้แล้ว