ชุมชนคนรักภาษาเบสิค - Visual Basic Community

 ลืมรหัสผ่าน
 ลงทะเบียน
ค้นหา
ดู: 2098|ตอบกลับ: 0

[VB.NET] CRUD (Create, Read, Update, Delete) ฉบับ Dapper (Micro-ORM) ด้วย MS -Access

[คัดลอกลิงก์]

11

กระทู้

31

โพสต์

427

เครดิต

ผู้ดูแลบอร์ด

Rank: 7Rank: 7Rank: 7

เครดิต
427

แก้ไขครั้งสุดท้ายโดย puklit เมื่อ 2021-12-20 10:27

สวัสดีสมาชิก G2G ทุกท่าน

สำหรับวันนี้ผมขอนำเสนอรูปแบบ CRUD (Create, Read, Update, Delete) ฉบับ Dapper (Micro-ORM) ด้วย MS -Access
คือการจัดการข้อมูลทั้งหมด โดยไม่ใช้ ADO.Net แต่ในที่นี้เราจะใช้ Dapper (Micro-ORM) จัดการข้อมูลแทน ADO.Net

ข้อมูลเกี่ยวกับ Dapper : https://github.com/DapperLib/Dapper
คู่มือการใช้งาน : https://dapper-tutorial.net/
ก่อนที่จะสามารถใช้งาน Dapper ในโปรเจคของเรา ให้ทำการลง Packages ผ่าน NuGet  ก่อน

ตัวอย่างฟอร์ม


ตัวอย่าง โค้ด

C (Create)
  1. ' บันทึกข้อมูลพนักงานใหม่ (บันทึกข้อมูลโดยใช้พารามิเตอร์)
  2.     ' (ตัวอย่างการเรียก Execute จาก Module MdlMain) ข้อดี คือไม่ต้องเขียนเรียก Using db As IDbConnection = New OleDbConnection(MdlMain.ConnStr) ทุก ๆ ครั้งที่มีการใช้งาน
  3.     Private Sub New_EmpDB()

  4.         Dim sql = "INSERT INTO tblEmployee
  5.                    (Emp_Name,Emp_SName,Emp_Gender,Emp_StartDate)
  6.                    VALUES
  7.                    (@Emp_Name,@Emp_SName,@Emp_Gender,@Emp_StartDate)"

  8.         Dim prm As New DynamicParameters 'กำหนดค่า พารามิเตอร์ ของ Dapper ORM
  9.         prm.Add("Emp_Name", txtEmp_Name.Text) 'ชื่อ
  10.         prm.Add("Emp_SName", txtEmp_SName.Text) 'นามสกุล
  11.         prm.Add("Emp_Gender", cmbGender.Text) 'เพศ
  12.         prm.Add("Emp_StartDate", dtpStartDate.Value) 'วันที่เริ่มงาน

  13.         MdlMain.Execute(sqlstr:=sql, prm:=prm, cmdType:=CommandType.Text)
  14.         MessageBox.Show("บันทึกข้อมูลเรียบร้อยแล้ว", "บันทึกข้อมูล", MessageBoxButtons.OK, MessageBoxIcon.Information)

  15.     End Sub
คัดลอกไปที่คลิปบอร์ด


R (Read)
  1. ' แสดงข้อมูลพนักงานใน DataGridView
  2.     Private Sub Show_Empinfo()

  3.         Try

  4.             Using db As IDbConnection = New OleDbConnection(MdlMain.ConnStr) 'สร้างการเชื่อมต่อโดยใช้ Using

  5.                 db.Open() 'เปิดการเชิ่อมต่อฐานข้อมูล

  6.                 Dim sql = "SELECT * FROM tblEmployee" ' คำสั่ง SQL
  7.                 dgvEmp.DataSource = db.Query(Of Employee)(sql).ToList() 'กำหนดข้อมูลที่ Query มาได้ให้กับ DataGridview
  8.                 Set_DGV() 'จัด Layout DataGridView
  9.                 dgvEmp.Refresh() 'ฟื้นฟู DataGridView

  10.             End Using

  11.         Catch ex As Exception

  12.             MessageBox.Show(ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error)

  13.         End Try

  14.     End Sub
คัดลอกไปที่คลิปบอร์ด

  1. ' แสดงข้อมูลใน Textbox
  2.     Private Sub Emp_infoo(Emp_ID As String)

  3.         Dim sql = @"SELECT Emp_ID,Emp_Name,Emp_SName,Emp_Gender,Emp_StartDate
  4.                    FROM tblEmployee
  5.                    WHERE Emp_ID = {Emp_ID} "

  6.         MdlMain.Emp_info(Of Employee)(sql, AddressOf Empinfo)

  7.     End Sub

  8.     ' ข้อมูลพนักงาน
  9.     Private Sub Empinfo(l As List(Of Employee))

  10.         Get_EmpID = l.Item(0).Emp_ID 'ไอดี
  11.         txtEmp_Name.Text = l.Item(0).Emp_Name 'ชื่อ
  12.         txtEmp_SName.Text = l.Item(0).Emp_SName 'นามสกุล
  13.         cmbGender.Text = l.Item(0).Emp_Gender
  14.         dtpStartDate.Value = MdlMain.SqlDate(l.Item(0).Emp_StartDate) 'วันที่เริ่มงาน

  15.     End Sub
คัดลอกไปที่คลิปบอร์ด


U (Update)

  1. ' แก้ไขข้อมูลพนักงาน
  2.     Private Sub Edit_EmpDB()

  3.         Try

  4.             Using db As IDbConnection = New OleDbConnection(MdlMain.ConnStr) 'สร้างการเชื่อมต่อโดยใช้ Using

  5.                 db.Open() 'เปิดการเชิ่อมต่อฐานข้อมูล

  6.                 ' คำสั่ง SQL
  7.                 Dim sql = @"UPDATE tblEmployee SET
  8.                                 Emp_Name =@Emp_Name,
  9.                                 Emp_SName =@Emp_SName,
  10.                                 Emp_Gender =@Emp_Gender,
  11.                                 Emp_StartDate =@Emp_StartDate
  12.                            WHERE Emp_ID = {Get_EmpID} "

  13.                 Dim prm As New DynamicParameters 'กำหนดค่า พารามิเตอร์ ของ Dapper ORM
  14.                 prm.Add("Emp_Name", txtEmp_Name.Text) 'ชื่อ
  15.                 prm.Add("Emp_SName", txtEmp_SName.Text) 'นามสกุล
  16.                 prm.Add("Emp_Gender", cmbGender.Text) 'เพศ
  17.                 prm.Add("Emp_StartDate", dtpStartDate.Value) 'วันที่เริ่มงาน

  18.                 db.Execute(sql, prm, commandType:=CommandType.Text) 'คำสั่ง Execute ฐานข้อมูลโดยใช้ sql, มีค่าพารามิเตอร์ที่รับเข้ามาจาก prm ,กำหนดประเภทคำสั่งเป็น Text

  19.                 MessageBox.Show("บันทึกแก้ไขข้อมูลเรียบร้อยแล้ว", "แก้ไขข้อมูล", MessageBoxButtons.OK, MessageBoxIcon.Information)

  20.             End Using

  21.         Catch ex As Exception

  22.             MessageBox.Show(ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error)

  23.         End Try

  24.     End Sub
คัดลอกไปที่คลิปบอร์ด


D (Delete)

  1. ' ลบข้อมูล
  2.     Private Sub Delete_EmpDB()

  3.         Try

  4.             Using db As IDbConnection = New OleDbConnection(MdlMain.ConnStr) 'สร้างการเชื่อมต่อโดยใช้ Using

  5.                 db.Open() 'เปิดการเชิ่อมต่อฐานข้อมูล

  6.                 ' คำสั่ง SQL
  7.                 Dim sql = @"DELETE FROM tblEmployee WHERE Emp_ID = {Get_EmpID} "
  8.                 db.Execute(sql, commandType:=CommandType.Text) 'คำสั่ง Execute ฐานข้อมูลโดยใช้ sql, กำหนดประเภทคำสั่งเป็น Text

  9.             End Using

  10.         Catch ex As Exception

  11.             MessageBox.Show(ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error)

  12.         End Try

  13.     End Sub
คัดลอกไปที่คลิปบอร์ด


สำหรับท่านที่สนใจสามารถดาวน์โหลดตัวอย่างโปรแกรมได้ที่นี่



ฺBest regards
puklit


ขออภัย! โพสต์นี้มีไฟล์แนบหรือรูปภาพที่ไม่ได้รับอนุญาตให้คุณเข้าถึง

คุณจำเป็นต้อง ลงชื่อเข้าใช้ เพื่อดาวน์โหลดหรือดูไฟล์แนบนี้ คุณยังไม่มีบัญชีใช่ไหม? ลงทะเบียน

x
ขออภัย! คุณไม่ได้รับสิทธิ์ในการดำเนินการในส่วนนี้ กรุณาเลือกอย่างใดอย่างหนึ่ง ลงชื่อเข้าใช้ | ลงทะเบียน

รายละเอียดเครดิต

ข้อความล้วน|อุปกรณ์พกพา|ประวัติการแบน|G2GNet.com  

GMT+7, 2024-3-29 13:48 , Processed in 0.180034 second(s), 4 queries , File On.

Powered by Discuz! X3.4, Rev.62

Copyright © 2001-2020 Tencent Cloud.

ตอบกระทู้ ขึ้นไปด้านบน ไปที่หน้ารายการกระทู้