[C#] การใช้งานฐานข้อมูล MySQL ด้วย C# : การใช้งานพื้นฐานอย่างการ Select, Insert, Update
หลังจากดูตัวอย่างการใช้งานพื้นฐานอย่าง Insert ใน [C#] การใช้งานฐานข้อมูล MySQL ด้วย C# : เตรียมความพร้อมและการเชื่อมต่อไปแล้ว ออฟก็เลยจะมาให้ตัวอย่างการใช้งานอย่าง Update, Select ข้อมูลกันบ้าง รวมไปถึงทิปและเทคนิคอีกนิดหน่อยอย่างการ insert วันที่ลงใน type datetime ซึ่งต้องมีการจัดรูปแบบกันนิดนึง รวมไปถึงการดึงค่า id หลังจากที่ insert ข้อมูลด้วย
-
ตัวอย่างการใช้งานอย่าง Update
การใช้งานไม่ต่างจากการ Insert เท่าไหร่นักเพียงเปลียนข้อมูลในส่วนของคำสั่ง SQL เท่านั้นเองค่า
//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 databse operations DateTime time = DateTime.Now; string time_finished = String.Format("{0:yyyy-MM-dd HH:mm:ss}", time); //SQL Command sql = "UPDATE sds_result "; sql += "SET status='1', result_xml='"+result+"', time_finished='"+time_finished+"'"; sql += "WHERE id='"+jobid+"'"; MySqlCommand cmd = new MySqlCommand(sql, connection); //Use ExecuteNonQuery to insert data. cmd.ExecuteNonQuery(); //Close Connection connection.Close();
-
ตัวอย่างการใช้งานอย่าง Select หรือการดึงข้อมูลจากฐานข้อมูล
การใช้งานจะต่างไปจากการ Insert และ update นิดหน่อยตรงส่วนของคำสั่ง SQL และการใช้ ExecuteReader : ใช้ในการดึงข้อมูลจากฐานข้อมูล เช่น cmd.ExecuteReader(); แทน ExecuteNonQuery ซึ่งใช้ในการ insert และ delete ข้อมูล
//create connection string string ConnectionString = "SERVER=localhost;" + "DATABASE=sds_result;" + "UID=root;" + "PASSWORD=123456;"; MySqlConnection connection = new MySqlConnection(ConnectionString); //Connecting to MySQL connection.Open(); //SQL Command sql = "SELECT result_xml, file_submissions"; sql += "FROM sds_result"; sql += "WHERE status ='1' AND id='"+jobid; MySqlCommand cmd = new MySqlCommand(sql, connection); //Use ExecuteReader to query data cmd.ExecuteReader(); //Close Connection connection.Close();
-
การ Insert วันที่ลงในฐานข้อมูล type datetime
เมื่อเราต้องการเก็บค่าวันปัจจุบันลงในฐานข้อมูล เราต้องทำการจัดรูปแบบข้อมูลที่ได้มาก่อน เนื่องจากรูปแบบการเก็บวันที่ของ C# ที่ดึงวันที่ปัจจุบันนั้นจะอยู่ในรูปแบบของ แต่ในฐานข้อมูลฟิลด์ datetime จะมีการเก็บข้อมูลในรูปแบบของ yyyy-MM-dd HH:mm:ss เราก็เลยต้องทำการจัดรูปแบบกันก่อนนั่นเอง
- เก็บค่าวันและเวลาปัจจุบัน โดยใช้ DateTime time = DateTime.Now;
- ทำการจัดรูปแบบข้อมูลใหม่
string time_started = String.Format(“{0:yyyy-MM-dd HH:mm:ss}”, time); - จากนั้นค่อยนำค่า time_started เก็บลงฐานข้อมูล
-
การดึงค่า id หลังจากที่ insert ข้อมูล
เทคนิคนี้ก็ไม่ใช่เทคนิคพิเศษอะไรมากมายเพียงแต่ว่าบางครั้งหลังจากที่เรา Insert ข้อมูลลงฐานข้อมูลแล้วเราอาจจะต้อง ค่า auto increment อย่าง id ในตารางที่เราเพิ่งทำการใส่่ข้อมูลเข้าไป ตัวอย่างเช่นโปรเจ็คของออฟหลังจากที่ผู้ใช้ส่งการบ้านเข้ามาตรวจการลอกกับ Web service ตัว Web service เองจะทำการสร้าง record ในการตรวจและส่งค่า jobid กลับไปให้ก่อน เนื่องจากว่าการตรวจอาจจะต้องใช้เวลาทำให้ผู้ใช้ไม่สามารถได้รับผลที่ต้องการเลยทันที ดังนั้นหลังจากที่ออฟทำการสร้าง record เพื่อบันทึกการรับการบ้านเข้ามาตรวจแล้ว ออฟก็ต้องการ id เพื่อส่งคืนให้ผู้ใช้นั่นเอง
การดึงค่า id หลังจากที่ insert ข้อมูล ก็ทำได้โดยใช้คำสั่ง LastInsertedId ซึ่งจะได้ผลออกมาเป็น long ถ้าต้องการแปลงเป็น int ก็ให้ใส่ (int) เข้าไปด้วย ตัวอย่างการใช้งาน int jobid = (int)cmd.LastInsertedId;
-
หมายเหตุ
– ระำวังการนำโค้ดไปใช้ในส่วนของโค้ดที่มีเครื่องหมาย ” ” เนื่องจากเวลากอปไปวางแล้วอาจจะทำให้ไม่สามารถใช้งานโค้ดได้
Leave a comment