จากบทความที่แล้ว ASP.net การใช้ GridView ครั้งนี้เรามาใช้ SqlDataReader กับ GridView กันบ้างโดยก่อนที่จะสามารถใช้ SqlDataReader ได้นั้นเราก็ต้องทำการเปิด Connection แล้วคำสั่งที่ใช้สำหรับดึงข้อมูลซะก่อนซึ่งข้อมูลในฐานข้อมูลนั้น ผมใช้เป็นข้อมูลตัวอย่าง Northwind เรามาเริ่มกันเลยดีกว่า
ขั้นแรกผมทำการสร้างไฟล์ WebForm โดยตั้งชื่อว่า Query.aspx ดังรูป
ต่อจากนั้นทำการเปิดไฟล์ Query.cs เพื่อทำการเขียนโค้ด โดยจำเป็นต้องมีการใช้ library สำหรับเชื่อมต่อฐานข้อมูล SQLServer โดยใช้คำสั่ง
[sourcecode language=”c#”]
using System.Data;
using System.Data.SqlClient;
[/sourcecode]
หลังจากนั้นก็กลับไปที่ไฟล์ webpage คือ Query.aspx เพื่อทำการสร้าง GridView โดยให้เอาเมาส์ลาก GridView จาก ToolBar ในส่วนของ Data
เมื่อสร้าง GridView เสร็จแล้วให้ทำการแก้ไข ID ของ GridView เป็น grid
หลังจากก็ทำการเขียนโค้ดในส่วนของการเชื่อมต่อฐานข้อมูลแล้งดึงข้อมูล ซึ่งมีโค้ดดังนี้
ต่อจากนั้นทำการเปิดไฟล์ Query.cs เพื่อทำการเขียนโค้ด โดยจำเป็นต้องมีการใช้ library สำหรับเชื่อมต่อฐานข้อมูล SQLServer โดยใช้คำสั่ง
[sourcecode language=”c#”]
SqlConnection conn = new SqlConnection(@”server=.\sqlexpress;integrated security=true;database=northwind”);
conn.Open();
string sqlString = “SELECT ProductID, ProductName, QuantityPerUnit, UnitPrice FROM Products”;
SqlCommand comm = new SqlCommand(sqlString,conn);
SqlDataReader reader = comm.ExecuteReader();
grid.DataSource = reader;
grid.DataBind();
[/sourcecode]
โค้ดชุดนี้ใส่ใน Function Page_Load คือให้เริ่มทำงานเมื่อหน้าเพจได้ทำการ load ข้อมูลนั้นเอง
ผลลัพธ์ก็จะได้ดังรูป จากตัวอย่างโค้ดจะเห็นว่าจะประกอบด้วย 3-4 ส่วนด้วยกันคือ 1 ทำการเชื่อมต่อฐานข้อมูลซึ่งจะต้องเป็นข้อมูลที่ถูกต้องเพื่อที่จะได้เข้าไปใช้งานได้ซึ่งตัวอย่างก็คือ
ต่อจากนั้นทำการเปิดไฟล์ Query.cs เพื่อทำการเขียนโค้ด โดยจำเป็นต้องมีการใช้ library สำหรับเชื่อมต่อฐานข้อมูล SQLServer โดยใช้คำสั่ง
[sourcecode language=”c#”]
SqlConnection conn = new SqlConnection(@”server=.\sqlexpress;integrated security=true;database=northwind”);
conn.Open();
[/sourcecode]
ซึ่งเวลา new SqlConnection ก็จะใส่รายละเอียดของ server ต่อจากนั้นก็ใช้คำสั่ง Open() เพื่อทำการเชื่อมต่อ
เมื่อเชื่อมต่อเสร็จแล้วก็จะทำการดึงข้อมูลโดยคำสั่ง sql นั้นถูกกำหนดแต่เก็บในตัวแปร sqlString ต่อจากนั้นเมื่อต้องการดึงข้อมูลก็จะใช้ SqlCommand เพื่อกำหนดคำสั่งและทำการดึงข้อมูล จากตัวอย่างนั้นก็จะใช้ฟังก์ชั่น ExecuteReader เพื่อทำการดึงข้อมูลมาเพื่อดูข้อมูล หลังจากดึงข้อมูลเรียบร้อยแล้วก็จะทำการแสดงผลไปยัง GridView โดยใช้คำสั่งต่อไปนี้
[sourcecode language=”c#”]
SqlDataReader reader = comm.ExecuteReader();
grid.DataSource = reader;
grid.DataBind();
[/sourcecode]
มันก็จะแสดงผลตามที่เราต้องการแล้วครับ