[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();

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

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

รีวิวโดนใจ >> ครัวกรรณิการ์ อาหารทุกอย่างทำจากไก่ อร่อยกันได้ ที่ตัวเมืองหัวหิน

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

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

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

รีวิวโดนใจ >> Hou Yuu (โฮวยู) ร้านบุฟเฟ่ต์ปิ้งย่างและเทปันยากิ 690++ ที่ตึก GMM อโศก

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

รีวิวโดนใจ >> Moms Marons ร้านมาการองและขนมหลากหลายของคุณแม่ลูกสองที่น่าลองกันค่า

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

รีวิวโดนใจ >> Inaho (อินาโฮ) บุฟเฟ่ต์อาหารญี่ปุ่นแถวสีลมคนละ 390 บาท แค่พอกินได้แต่ยังไม่โดน

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

รีวิวโดนใจ >> Kongju (คองจู) ห้องอาหารเกาหลีรสชาติต้นตำรับที่โรงแรมปทุมวันปริ๊นเซส

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

รีวิวโดนใจ >> สุภัทรา บาย เดอะ ซี (Supatra By The Sea) ดื่มด่ำกับบรรยากาศริมทะเลที่หัวหิน

ร้านสเต็ก »

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

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

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

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

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

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

รีวิวโดนใจ >> Wine Connection Bistro อิ่มอร่อยในวันสบายๆ @ Mega บางนา

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

รีวิวโดนใจ >>Yu He  (หยูเห้อ) กับบุฟเฟ่ต์ติ่มซำ 650++ อิ่มอร่อยเต็มที่โรงแรม Grand FourWing

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

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

ร้านซูชิ »

รีวิวโดนใจ >> Sushi Hiro อร่อยกับซูชิ อิ่มด้วยโปรโมชั่นแรงๆ ลดถึง50% ที่สาขาพระราม9

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

รีวิวโดนใจ >>Yu He  (หยูเห้อ) กับบุฟเฟ่ต์ติ่มซำ 650++ อิ่มอร่อยเต็มที่โรงแรม Grand FourWing