thongkorn โพสต์ 2020-5-24 14:34:25

[VB.NET] การสร้าง DataTable และจำลองข้อมูลให้กับตารางกริด

http://www.g2gnet.com/webboard/images/vbnet/datatablegrid.png


DataTable ก็คือตารางข้อมูลนั่นเอง โดยเกิดจากการสร้างฟิลด์ข้อมูล (Field) หรือหลัก (Column) ที่เราต้องการจัดเก็บ เช่น ชื่อพนักงาน ตำแหน่ง สังกัด เป็นต้น โดยแหล่งที่มาของข้อมูลมาได้หลายทาง เช่น ฐานข้อมูล, เอกสาร XML/JSon, ข้อมูลไฟล์ Excel หรือแม้แต่การสร้างขึ้นมาเอง สำหรับบทความชุดนี้จะใช้ชุดการจำลองข้อมูล แทนการเชื่อมต่อฐานข้อมูล ประโยชน์ก็คือเราสามารถนำข้อมูลตัวอย่างไปใช้งานทดสอบโปรแกรมต่างๆได้อย่างรวดเร็ว เช่น การทำรายงาน การสร้างปุ่มคำสั่งตามจำนวนรายการที่มีอยู่ เป็นต้น ...


ตัวอย่างของ DataTable ... หากเราเลือกในแต่ละหลัก มันคือ DataColumn หากเราเลือกในแต่ละแถว มันคือ DataRow ...
http://www.g2gnet.com/webboard/images/vbnet/datatablebasic.png


มาดูโค้ดตัวอย่างฉบับเต็มกันเถอะ ...
Imports System.Data

Public Class frmDataTable

    Private Sub frmDataTable_Load(sender As System.Object, e As System.EventArgs) Handles MyBase.Load
      Call SetupGridView(dgvData)
    End Sub

    Private Sub SetupGridView(ByRef DGV As DataGridView)
      With DGV
            .RowHeadersVisible = True
            .AllowUserToAddRows = False
            .AllowUserToDeleteRows = False
            .AllowUserToResizeRows = False
            .MultiSelect = False
            .SelectionMode = DataGridViewSelectionMode.FullRowSelect
            .ReadOnly = True
            '// Data rows
            .Font = New Font("Tahoma", 10)
            .RowTemplate.MinimumHeight = 27
            .RowTemplate.Height = 27
            '// Column Header
            .ColumnHeadersHeight = 30
            .ColumnHeadersHeightSizeMode = DataGridViewColumnHeadersHeightSizeMode.DisableResizing
            '// Autosize Column
            .AutoSizeColumnsMode = DataGridViewAutoSizeColumnsMode.Fill
            '// Even-Odd Color
            .AlternatingRowsDefaultCellStyle.BackColor = Color.LightGreen
            .DefaultCellStyle.SelectionForeColor = Color.White
            '// Header
            With .ColumnHeadersDefaultCellStyle
                .BackColor = Color.Navy
                .ForeColor = Color.White
                .Font = New Font(DGV.Font, FontStyle.Bold)
            End With
      End With
    End Sub

    Private Sub btnDataTable_Click(sender As System.Object, e As System.EventArgs) Handles btnDataTable.Click
      '/ เรียกไปยังฟังค์ชั่น GetDataTable จากนั้นมันจะ Return DataTable กลับมาให้กับ DataSource ของ DataGridView
      dgvData.DataSource = GetDataTable()
    End Sub

    Function GetDataTable() As Data.DataTable
      Dim dt As New Data.DataTable
      ' / เพิ่มหลัก (Columns) หรือฟิลด์ จำนวน 6 หลัก
      With dt
            .Columns.Add("EmployeePK", GetType(Integer))
            .Columns.Add("EmployeeID", GetType(String))
            .Columns.Add("EmployeeName", GetType(String))
            .Columns.Add("Position", GetType(String))
            .Columns.Add("Department", GetType(String))
            .Columns.Add("HireDate", GetType(Date))
      End With
      ' / เพิ่มรายการข้อมูล (Record) เรียงตามลำดับฟิลด์
      With dt
            .Rows.Add("1", "EMP00001", "นายทองก้อน ทับทิมกรอบ", "Managing Director", "Management", "01/01/2555")
            .Rows.Add("2", "EMP00002", "นายบุญห่อ พ่อรวย", "ช่างซ่อมบำรุง", "Technical", "01/06/2555")
            .Rows.Add("3", "EMP00003", "นางสาวกุ๊กกิ๊ก น่ารักที่สุด", "เลขา", "Management", "25/02/2555")
            .Rows.Add("4", "EMP00004", "นางบัวผัน ฝันเฟื่อง", "หัวหน้าบัญชี", "บัญชี", "11/11/2555")
            .Rows.Add("5", "EMP00005", "หนูมาลี มีลูกแมวเหมียว", "ธุรการ", "ธุรการ", "13/04/2555")
      End With
      Return dt
    End Function
End Class

ดาวน์โหลดโค้ดต้นฉบับ VB.NET (2010) ได้ที่นี่ ...

g2gsoftuser โพสต์ 2022-10-25 14:58:43

ขอบคุณครับ
หน้า: [1]
ดูในรูปแบบกติ: [VB.NET] การสร้าง DataTable และจำลองข้อมูลให้กับตารางกริด