ตัวอย่างวิธีใช้ ADO.NET อย่างง่ายที่สุด

ไปหน้าแรก | สารบัญ | Laploy.comระเบียนบทความ | บทความจากลาภลอย

 

ตัวอย่างวิธีใช้ ADO.NET อย่างง่ายที่สุด

 

หัวข้อนี้ผู้เขียนจะสาทิตการใช้ ADO.NET อย่างง่ายที่สุด เมื่อท่านได้คิวรีที่ต้องการแล้วขั้นตอนต่อไปคือเขียนโปรแกรมภาษา C# ใน MSVS2008 ให้ท่านเปิดโปรแกรม MSVS2008 แล้วสร้างโปรเจ็กต์ใหม่ เลือกชนิดเท็มเพลตเป็น Console Application แล้วตั้งชื่อว่า AdoTest01 หรือชื่ออื่นๆ ตามใจชอบตามที่เห็นในภาพ 31-2

ภาพ 31-2: เลือกชนิดเท็มเพลตเป็น Console Application

เมื่อสร้างโปรเจ็กต์ใหม่แล้วให้ป้อนพิมพ์โค้ดตามในภาพ 31-3 ลงในไฟล์ Program.cs เนื่องจากเป็นโค้ดสั้นๆ เพื่อทดสอบผู้เขียนจึงใส่ทั้งหมดไว้ภายในเมธอด Main เพื่อความสะดวก ในการเขียนโปรแกรมจริงท่านควรจะนิยามคลาสแยกไว้ต่างหาก บรรทัดที่ 1 และ 2 คำสั่ง Using จับรวมเนมสเปสที่จำเป็นต้องใช้สองเนมสเปสคือ System และ System.Data.SqlClient ซึ่งเป็นส่วนหนึ่งของ ADO.NET เพื่อให้โปรแกรมไคลแอนท์สามารถติดต่อกับ SQL2008 ได้

ภาพ 31-3: โค้ดภาษา C#

บรรทัดที่ 10 ถึง 12 ทำหน้าที่ประกาศและกำหนดค่าให้แก่ตัวแปรชื่อ sqlConnect เป็นข้อความที่จะใช้เพื่อเชื่อมต่อกับเซอฟเวอร์ ท่านจะต้องแก้ไขชื่อเซอฟเวอร์ในบรรทัดที่ 10 ให้เป็นชื่อเซอฟเวอร์ที่ท่านต้องการติดต่อ หรือจะใส่เป็นไอพีแอดเดรสก็ได้เหมือนกัน โค้ดบรรทัดที่ 13 ถึง 18 ประกาศตัวแปรชื่อ sqlCommand ทำหน้าที่เก็บข้อความที่เป็นคิวรีเพื่อดึงข้อมูลจากเซอฟเวอร์ โปรดสังเกตว่าข้อความนี้คือคิวรีที่ผู้เขียนสาธิตการสร้างไว้ในหัวข้อที่ผ่านมา

โค้ดบรรทัดที่ 19 ประกาศตัวแปรชื่อ connection เพื่อใช้ทำหน้าที่เป็นช่องทางติดต่อกับเซอฟเวอร์ โค้ดบรรทัดที่ 20 ประกาศตัวแปรชื่อ command เพื่อใช้ทำหน้าที่เป็นตัวส่งคำสั่งไปยัง SQL2008 โค้ดบรรทัดที่ 21 ประกาศตัวแปรชื่อ dataReader เพื่อใช้ทำหน้าที่อ่านแถวข้อมูลจาก SQL2008

การประกาศตัวแปรทั้งสามนี้ผู้เขียนกำหนดค่าเริ่มต้นเป็น null ไว้ทำให้ไม่มีออพเจ็กต์เกิดขึ้นจริงๆ เป็นเพียงแต่ตัวแปรที่มีชนิดข้อมูลตามระบุ ยกตัวอย่างเช่น dataReader ตอนนี้เป็นเพียงตัวแปรที่มีชนิดข้อมูลหรือไทป์เป็น SqlDataReader ยังไม่มีออพเจ็กต์ที่เป็น SqlDataReader เกิดขึ้นจริงๆ เพราะยังไม่ได้ใช้คำสั่ง new

คำสั่ง new ในบรรทัดที่ 22 ทำหน้าที่สร้างออพเจ็กต์แบบ SqlConnection เพื่อใช้ทำหน้าที่เป็นช่องทางติดต่อกับเซอฟเวอร์ ผู้เขียนส่งค่า sqlConnect ไปเป็นอาร์กิวเมนต์เพราะเมธอดคอนสทรักเตอร์ของคลาสนี้รับพารามิเตอร์เป็นข้อความที่จะใช้เพื่อเชื่อมต่อกับเซอฟเวอร์ คำสั่งบรรทัดที่ 23 เรียกเมธอด Open ของคลาส SqlConnection เพื่อเริ่มต้นเปิดการเชื่อมต่อ

คำสั่ง new ในบรรทัดที่ 24 ทำหน้าที่สร้างออพเจ็กต์แบบ SqlCommand เพื่อใช้ทำหน้าที่เก็บข้อความที่เป็นคิวรีซึ่งจะดึงข้อมูลจากเซอฟเวอร์ ผู้เขียนใส่อาร์กิวเมนต์สองตัวคือ sqlCommand และ connection เพราะเมธอดคอนสทรักเตอร์ของคลาสนี้รับพารามิเตอร์เป็นข้อความที่เป็นคิวรี และออพเจ็กต์ SqlConnection ที่ท่านจะใช้เป็นช่องทางติดต่อกับเซอฟเวอร์

บรรทัดที่ 25 สร้างออพเจ็กต์แบบ SqlDataReader ซึ่งมีวิธีสร้างวิตถารกว่าคลาสอื่นใด เพราะในขณะที่คลาสอื่นๆ สร้างโดยใช้คำสั่ง new และคอนสทรักเตอร์ แต่คลาส SqlDataReader กลับสร้างด้วยการเรียกเมธอด ExecuteReader ของคลาส SqlCommand ท่านสร้างออพเจ็กต์แบบ SqlDataReader ไว้เพื่อทำหน้าที่อ่านแถวข้อมูลแบบเดินหน้าได้ทางเดียว (ย้อนหลังไม่ได้)

เมื่อโปรแกรมทำงานมาถึงบรรทัดที่ 26 นับว่าท่านมีเครื่องมือทั้งหมดที่จำเป็นต่อการเชื่อมต่อกับ SQL2008 และส่งคำสั่งเชื่อมต่อและคิวรีไปแล้ว ตอนนี้จึงพร้อมที่จะอ่านแถวข้อมูลผลลัพธ์ได้โดยใช้เมธอด Read ของออพเจ็กต์ dataReader คำสั่ง while มีไว้เพื่อให้ทำงานซ้ำอ่านแถวข้อมูลไปเรื่อยๆ จนกว่าจะหมด ตราบใดที่ยังมีข้อมูลอยู่เมธอด Read จะให้ค่าบูลีนเป็นจริง เมื่ออ่านไปถึงแถวสุดท้ายแล้ว Read จะให้ค่าบูลีนเป็นเท็จ ท่านสามารถใช้ค่าบูลีนนี้เป็นเงื่อนไขในคำสั่ง while เพื่อให้ยุติการวนซ้ำได้

บรรทัดที่ 27 ถึง 31 อันที่จริงเป็นคำสั่งบรรทัดเดียว ผู้เขียนแยกไว้หลายบรรทัดเพื่อให้ท่านอ่านเข้าใจได้ง่ายขึ้น ทั้งห้าบรรทัดนี้คือการใช้เมธอด WriteLine ของคลาส Console เพื่อพิมพ์แถวข้อมูลที่ได้รับมาจาก SQL2008 ออกบนจอภาพ โปรดสังเกตว่าวิธีอ้างถึงข้อมูลในคอลัมน์ต่างๆ ทำได้โดยใช้ชื่อ dataReader ตามด้วยวงเล็บเหลี่ยม และใส่ชื่อคอลัมน์เป็นสตริง (หรือจะใส่หมายเลขลำดับแทนก็ได้) ไว้ในวงเล็บเหลี่ยม

สุดท้ายบรรทัดที่ 32 เมื่อท่านได้แถวข้อมูลครบหมดแล้ว และไม่จำเป็นต้องติดต่อกับ SQL2008 อีก ให้ปิดการเชื่อมต่อโดยเรียกเมธอด Close ของออพเจ็กต์ connect แล้วจบการทำงาน

เมื่อป้อนพิมพ์และตรวจสอบดีแล้วว่าไม่มีการสะกดให้กดปุ่ม Ctrl+F5 เพื่อรันโปรแกรม ท่านจะเห็นกรอบ cmd ปรากฏขึ้นเหมือนในภาพ 31-4 สิ่งที่แสดงอยู่ใน cmd คือแถวข้อมูลที่เป็นผลลัพธ์ของการคิวรี โปรดสังเกตว่าข้อมูลเหล่านี้เหมือนผลลัพธ์ของคิวรีในหัวข้อก่อนหน้านี้

ภาพ 31-4: ผลลัพธ์การทำงานของโปรแกรม

Post a comment or leave a trackback: Trackback URL.

ความเห็น

  • Unknown  On สิงหาคม 26, 2009 at 6:36 pm

    เป็นการเริ่มต้นที่ดีสำหรับผม รันได้แล้วครับขอบคุณมากครับ

  • wσrαчυτh  On ธันวาคม 7, 2009 at 10:48 pm

    เป็น spaces ที่สุดยอดมากครับ แต่งงมากไม่เข้าใจเรย จะพยายามทำความเข้าใจนะคับ เพราะแค่ในห้องเรียนภาษา C ผมก็จะไม่รอดแล้ว T-Tเป็นอาจารย์สอนที่ไหนอยู่เหรอครับ

ส่งความเห็นที่ wσrαчυτh ยกเลิกการตอบ