[C#] การใช้งานฐานข้อมูล MySQL ด้วย C# : เตรียมความพร้อมและการเชื่อมต่อ
วันนี้มาสรุปการใช้งานฐานข้อมูล MySQL ด้วย C# เอาไว้หลังจากที่ออฟใช้ในการทำงานโปรเจ็คแล้ว เรื่องที่สรุปก็มีในส่วนของการเชื่อมต่อฐานข้อมูล, การใช้ mysql connector/net ในการช่วยจัดการฐานข้อมูล MySQL, รวมถึงตัวอย่างการใช้งานพื้นฐานอย่างการ Insert
การ เตรียมความพร้อม
- ติดตั้ง MySQL ให้เรียบร้อย
- สร้างฐานข้อมูลใน MySQL อย่างของออฟสร้างตาราง sds_result
CREATE TABLE `sds_result` (`id` INT NOT NULL AUTO_INCREMENT PRIMARY KEY COMMENT ‘job_id ‘,
`status` BOOL NOT NULL COMMENT ‘สถานะของการตรวจ (true/false)’,
`result_xml` TEXT CHARACTER SET utf8 COLLATE utf8_unicode_ci NULL COMMENT ‘เก็บผลการตรวจเป็น (string)’,
`time_started` DATETIME NOT NULL COMMENT ‘วัน-เวลาที่เีิิริ่มตรวจ’,
`time_finished` DATETIME NULL COMMENT ‘วัน-เวลาที่ตรวจเสร็จ’) ENGINE = MYISAM CHARACTER SET utf8 COLLATE utf8_unicode_ci COMMENT = ‘ตาราง sds_result : เก็บผลการตรวจ’;
- ดาวน์โหลด mysql connector/net ซึ่งเป็นตัวช่วยในการใช้งาน MySQL ด้วยภาษา C# ให้ง่ายขึ้น http://dev.mysql.com/downloads/connector/net/6.2.html
- ทำการติดตั้ง mysql connector/net http://dev.mysql.com/doc/refman/5.1/en/connector-net-installation-windows.html
เริ่มการใช้งานฐานข้อมูล MySQL ด้วย C# ด้วย Microsoft Visual C# 2008
- เปิดโปรแกรม Microsoft Visual C# 2008 ขึ้นมา
- ทำการสร้าง Project ใหม่
- ทำการ add reference to: MySql.Data
– คลิกขวาที่ Solution Explorer แล้วเลือก Add Reference…
– ที่แทบ .NET เลือก MySql.Data
- เรียกใช้งานโดย using MySql.Data.MySqlClient;
การเชื่อมต่อฐานข้อมูล MySQL ด้วย C# ด้วย Microsoft Visual C# 2008
หลักของการเชื่อมต่อและใช้งานก็คือ
- connection string : เป็นส่วนกำหนดค่าว่า Server อะไร, ฐานข้อมูลชื่ออะไร, ชื่อผู้ใช้และรหัสผ่านในการเชื่อมต่อ ตัวอย่างเช่น
string ConnectionString = “SERVER=localhost;” +
“DATABASE=sds_result;” +
“UID=root;” +
“PASSWORD=123456”; - MySqlConnection object เป็นตัวจัดการในการเชื่อมต่อกับฐานข้อมูล โดย MySqlConnection constructor จะรับ connection string เป็นพารามิเตอร์
MySqlConnection connection = new MySqlConnection(ConnectionString); - เริ่มการเชื่อมต่อ
connection.Open(); - เขียนคำสั่ง SQL : ตัวอย่างการ Insert ข้อมูลใส่ในฟิลด์ status, file_submissions, time_started
sql = “INSERT INTO sds_result (status,file_submissions, time_started)”;
sql += “VALUES (‘0’,'” + file_submissions + “‘,'” + time_started + “‘)”; - ในการทำงานคำสั่ง SQL นั้นจะทำผ่าน MySqlCommand object
MySqlCommand cmd = new MySqlCommand(sql, connection);
– ExecuteReader : ใช้ในการดึงข้อมูลจากฐานข้อมูล เช่น cmd.ExecuteReader();
– ExecuteNonQuery : ใช้ในการ insert และ delete ข้อมูล เช่น cmd.ExecuteNonQuery(); - ปิดการเชื่อมต่อ
connection.Close();
โค้ดตัวอย่างของการเชื่อมต่อและการ Insert ข้อมูล
//create connection string string ConnectionString = "SERVER=localhost;" + "DATABASE=sds_result;" + "UID=root;" + "PASSWORD=123456;"; MySqlConnection connection = new MySqlConnection(ConnectionString); //Connecting to MySQL connection.Open(); // Perform database operations DateTime time = DateTime.Now; string time_started = String.Format("{0:yyyy-MM-dd HH:mm:ss}", time); int file_submissions = num; //SQL Command sql = "INSERT INTO sds_result (status,file_submissions, time_started)"; sql += "VALUES ('0','" + file_submissions + "','" + time_started + "')"; //When a connection has been created and opened, the code then creates a MySqlCommand object MySqlCommand cmd = new MySqlCommand(sql, connection); //Use ExecuteNonQuery to insert data. cmd.ExecuteNonQuery(); //Close Connection connection.Close();
Leave a comment