[C#] การใช้งานฐานข้อมูล MySQL ด้วย C# : เตรียมความพร้อมและการเชื่อมต่อ

mysql_connector_net_main.jpg
วันนี้มาสรุปการใช้งานฐานข้อมูล MySQL ด้วย C# เอาไว้หลังจากที่ออฟใช้ในการทำงานโปรเจ็คแล้ว เรื่องที่สรุปก็มีในส่วนของการเชื่อมต่อฐานข้อมูล, การใช้ mysql connector/net ในการช่วยจัดการฐานข้อมูล MySQL, รวมถึงตัวอย่างการใช้งานพื้นฐานอย่างการ Insert

การ เตรียมความพร้อม

  1. ติดตั้ง MySQL ให้เรียบร้อย
  2. สร้างฐานข้อมูลใน 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 : เก็บผลการตรวจ’;

  3. ดาวน์โหลด mysql connector/net ซึ่งเป็นตัวช่วยในการใช้งาน MySQL ด้วยภาษา C# ให้ง่ายขึ้น  http://dev.mysql.com/downloads/connector/net/6.2.html
  4. ทำการติดตั้ง mysql connector/net  http://dev.mysql.com/doc/refman/5.1/en/connector-net-installation-windows.html

เริ่มการใช้งานฐานข้อมูล MySQL ด้วย C# ด้วย Microsoft Visual C# 2008

  1. เปิดโปรแกรม Microsoft Visual C# 2008 ขึ้นมา
  2. ทำการสร้าง Project ใหม่
  3. ทำการ add reference to: MySql.Data
    - คลิกขวาที่ Solution Explorer แล้วเลือก Add Reference…
    mysql_connector_net_add_reference_to_MySql_Data_2.jpg
    - ที่แทบ .NET เลือก MySql.Data
    mysql_connector_net_add_reference_to_MySql_Data.jpg
  4. เรียกใช้งานโดย using MySql.Data.MySqlClient;

การเชื่อมต่อฐานข้อมูล MySQL ด้วย C# ด้วย Microsoft Visual C# 2008

หลักของการเชื่อมต่อและใช้งานก็คือ

  1. connection string : เป็นส่วนกำหนดค่าว่า Server อะไร, ฐานข้อมูลชื่ออะไร, ชื่อผู้ใช้และรหัสผ่านในการเชื่อมต่อ ตัวอย่างเช่น
    string ConnectionString = “SERVER=localhost;” +
    “DATABASE=sds_result;” +
    “UID=root;” +
    “PASSWORD=123456″;
  2. MySqlConnection object เป็นตัวจัดการในการเชื่อมต่อกับฐานข้อมูล โดย MySqlConnection constructor จะรับ connection string เป็นพารามิเตอร์
    MySqlConnection connection = new MySqlConnection(ConnectionString);
  3. เริ่มการเชื่อมต่อ
    connection.Open();
  4. เขียนคำสั่ง SQL : ตัวอย่างการ Insert ข้อมูลใส่ในฟิลด์ status, file_submissions, time_started
    sql = “INSERT INTO sds_result (status,file_submissions, time_started)”;
    sql += “VALUES (’0′,’” + file_submissions + “‘,’” + time_started + “‘)”;
  5. ในการทำงานคำสั่ง SQL นั้นจะทำผ่าน MySqlCommand object
    MySqlCommand cmd = new MySqlCommand(sql, connection);

    - ExecuteReader :  ใช้ในการดึงข้อมูลจากฐานข้อมูล เช่น cmd.ExecuteReader();
    - ExecuteNonQuery : ใช้ในการ insert และ delete ข้อมูล เช่น cmd.ExecuteNonQuery();
  6. ปิดการเชื่อมต่อ
    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();
Tags: , , , ,

Leave a Reply

2 Comments

  • big
    August 16, 2011 | Permalink | Reply

    mysql.data ไม่มีทำไงคับ

  • ขอบคุณครับ
    October 20, 2011 | Permalink | Reply

    ขอบคุณครับช่วยได้มากเลย

Leave a comment

Add your comment below, or trackback from your own site. You can also subscribe to these comments via RSS.

Your email is never shared. Required fields are marked *

Enjoy Eating

ร้านอาหารไทย »

รีวิวโดนใจ >> นาจ (Naj Exquisite Thai Cuisine) ร้านอาหารไทยสุดหรูย่านสีลม

ร้านไอศกรีม »

รีวิวโดนใจ >> YooMoo (ยูมู่) ไอศกรีมโยเกิร์ตแบรนด์ดังจากอังกฤษแห่งแรกในไทยและแห่งเดียวในเอเชีย

บุฟเฟต์ปิ้งย่างและชาบู »

รีวิวโดนใจ >> อากะ (AKA) สวรรค์ของคนคลั่งเนื้อ ลองมากินเนื้อย่างแบบ Premium กันบ้างค่า

ร้านเค้ก-ขนม-ของหวาน »

รีวิวโดนใจ >> Vanilla Bake Shop อร่อยกับขนมสไตล์โฮมเมดที่อบสดใหม่ในซอยเอกมัย

ร้านอาหารญี่ปุ่น »

รีวิวโดนใจ >> Chiba Cham (ชิบะแชมป์) สนุกกับการกิน แล้วลืมความอ้วนไว้ที่บ้าน ในซอยสุขุมวิท 39

ร้านอาหารนานาชาติ »

รีวิวโดนใจ >> The Coffee Club เติมเต็มอาหารเช้าให้ลงตัว พร้อมเอาใจคอกาแฟ ที่เอกมัย

ร้านอาหารซีฟู๊ด »

รีวิวโดนใจ >>  ปูกรรเชียงซีฟู้ด ร้านอาหารทะเล บรรยากาศไทยๆ หลายเมนูอร่อย ที่แปดริ้ว

ร้านสเต็ก »

รีวิวโดนใจ >> Sizzler ออกเมนู “สเต็กไก่เทอริยากิ” มาเอาใจคนชอบทานสเต็กสไตล์ญี่ปุ่นแล้วค่า

ร้านอาหารอีสาน »

รีวิวโดนใจ >> ส้มตำคุณกัญจณ์ ร้านอาหารไทย-อีสานเจ้าประจำ อร่อยได้ในราคาเบาๆ ที่สุขุมวิท 101/1

ร้านอาหารเกาหลี »

รีวิวโดนใจ >> BonChon Chicken ไก่ทอดกรอบบอนชอนสไตล์เกาหลี สาขาสีลมคอมเพล็กซ์

ร้านอาหารอิตาเลียน »

รีวิวโดนใจ >> ลูกอิน (Look In) มาทานพิซซา พาสต้าแสนอร่อยกับบรรยากาศโดนใจ ในซอยสุขุมวิท 58

ร้านจีนและติ่มซำ »

รีวิวโดนใจ >> Grand Peking (แกรนด์ปักกิ่ง) ภัตตาคารอาหารจีนในห้าง The Shoppes

ร้านราเมน-ก๋วยเตี๋ยว »

รีวิวโดนใจ >> Fujiyama Go Go: แชมป์ราเมน-สึเคะเมน อร่อยน่าลอง สาขาสุขุมวิท 39

ร้านซูชิ »

รีวิวโดนใจ >> Kaguya (คางูยะ) Japanese Gastro Bar ของ Chef ก้อง เชฟกระทะเหล็ก

ห้องอาหารโรงแรม »

รีวิวโดนใจ >> Scalini (สกาลินี่) ห้องอาหารสไตล์อิตาเลี่ยน-อเมริกันสุดหรู ณ Hilton สุขุมวิท