เขียนโปรแกรมเพื่อแสดงข้อมูลพนักงาน ด้วย ADO.NET vs. DataReader โดย อ. นัฐพงศ์ ส่งเนียม http://www.siam2dev.com
หน้าจอแสดงข้อมูลพนักงาน
Double click ที่ฟอร์ม แล้ว เขียนคำสั่งดังนี้ ทำการ imports class ที่จำเป็นต่อไปนี้
โค้ดในการแสดงข้อมูลด้วย DataReader Private Sub FrmHRM_System_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated Dim Myconn As OleDbConnection Dim StrConn As String = "Provider=Microsoft.jet.oledb.4.0;" & _ " Data Source=c:\HRM_System\HRM_DB.MDB" Myconn = New OleDbConnection(StrConn) Myconn.Open() '--------------------------------- Dim MyReader As OleDbDataReader Dim MyCmd As OleDbCommand = New OleDbCommand _ ("Select * From TbEmployee", Myconn) MyReader = MyCmd.ExecuteReader MyReader.Read() TxtEmpID.Text = MyReader.Item(0) CmbSalutation.Text = MyReader.Item(1) TxtFirstName.Text = MyReader.Item("EmpFName") TxtLastName.Text = MyReader.Item("EmpLName") MyReader.Close() Myconn.Close() End Sub
Imports System.Data Imports System.Data.OleDb Public Class FrmHRM_System Private Sub FrmHRM_System_Activated(ByVal sender As Object, ByVal e As System.EventArgs) Handles Me.Activated Dim Myconn As OleDbConnection Dim StrConn As String = "Provider=Microsoft.jet.oledb.4.0;" & _ " Data Source=c:\HRM_System\HRM_DB.MDB" Myconn = New OleDbConnection(StrConn) Myconn.Open() '--------------------------------- Dim MyReader As OleDbDataReader Dim MyCmd As OleDbCommand = New OleDbCommand _ ("Select * From TbEmployee", Myconn) MyReader = MyCmd.ExecuteReader MyReader.Read() TxtEmpID.Text = MyReader.Item(0) CmbSalutation.Text = MyReader.Item(1) TxtFirstName.Text = MyReader.Item("EmpFName") TxtLastName.Text = MyReader.Item("EmpLName") MyReader.Close() Myconn.Close() End Sub Private Sub FrmHRM_System_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load '--- ส่วนนี้ control ต่างยังไม่ถูกโหลดขึ้นมา End Class
สร้างคำสั่งในการเชื่อมต่อฐานข้อมูล เก็บใน Module ทำการ Add Module เข้ามา ไปที่เมนู Project เลือก Add Module
ตั้งชื่อ Module นี้เป็น Mdl_DB.vb แล้วกด ADD
เขียน SUB ในการเชื่อมต่อฐานข้อมูล ทำการ Imports Namespace ที่จำเป็น 2 ตัวดังนี้
ประกาศตัวแปรที่ใช้งานบ่อยๆ
ประกาศ SUB ConnectDB
ลบคำสั่งที่อยู่ในฟอร์มแอกทีฟ (Form_Activate)
เขียนคำสั่งที่อยู่ในฟอร์มแอกทีฟ (Form_Activate) ใหม่ Error เนื่องจาก เรายังไม่ได้สร้าง โปรแกรมย่อย sub ShowData ขึ้น ต้องไปสร้างโปรแกรมย่อยอันนี้ก่อน
สร้างโปรแกรมย่อยชื่อ ShowData() Error เนื่องจากตัวแปร DS นั้นอยู่ใน Mdl_DB.vb และไม่ได้ถูกประกาศให้เป็น Public จึงเรียกใช้งาน จากส่วนนี้ไม่ได้ วิธีแก้ ก็ให้กลับไปประกาศตัวแปรทั้งหมดเป็น Public
แก้ไขตัวแปรเดิมใน Mdl_DB ให้เป็น Public ไม่ error แล้ว
เขียนคำสั่งเพื่อแสดงข้อมูลแค่บางส่วนก่อน
ลองทดสอบ รันโปรแกรมดูผลลัพธ์ Error เนื่องจากชื่อตารางไม่ตรงกับที่มีอยู่ในฐานข้อมูล ให้หยุดรัน stop แล้ว แก้ไขชื่อตารางให้ตรงกัน
แก้ชื่อตาราง 2 จุด ดังนี้ 1 2
ถ้าแก้ไข แล้วก็จะแสดงข้อมูลขึ้นมาดังนี้
การเลื่อน เรคคอร์ดไปมา
กำหนดตัวแปร ชื่อ I สำหรับเลื่อนเรคคอร์ด ให้เริ่มต้นที่แถว 0
ตอนที่กดปุ่ม Next ให้เขียนคำสั่งดังนี้
ต้องกลับไปแก้ไขคำสั่งใน Sub showdata ดังนี้ แก้จาก 0 เป็น i ทุกบรรทัด
เลื่อนเกิน เรคคอร์ดที่มีอยู่ วิธีแก้ไข หยุดรันโปรแกรม แล้วเขียนคำสั่งเพิ่มใน ปุ่ม Next
แก้ไขคำสั่งในปุ่ม Next ใหม่
รันโปรแกรมแล้วเลื่อน next ไปเรื่อย
ปุ่ม ย้อนกลับ หรือ ก่อนหน้า
รันดูผลลัพธ์
ปุ่ม Last I ก็ต้องเท่ากับ index ของแถวสุดท้าย
ปุ่ม First