| 
 | 
 
 แก้ไขครั้งสุดท้ายโดย 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) 
- ' บันทึกข้อมูลพนักงานใหม่ (บันทึกข้อมูลโดยใช้พารามิเตอร์)
 
 -     ' (ตัวอย่างการเรียก Execute จาก Module MdlMain) ข้อดี คือไม่ต้องเขียนเรียก Using db As IDbConnection = New OleDbConnection(MdlMain.ConnStr) ทุก ๆ ครั้งที่มีการใช้งาน
 
 -     Private Sub New_EmpDB()
 
  
-         Dim sql = "INSERT INTO tblEmployee
 
 -                    (Emp_Name,Emp_SName,Emp_Gender,Emp_StartDate)
 
 -                    VALUES
 
 -                    (@Emp_Name,@Emp_SName,@Emp_Gender,@Emp_StartDate)"
 
  
-         Dim prm As New DynamicParameters 'กำหนดค่า พารามิเตอร์ ของ Dapper ORM
 
 -         prm.Add("Emp_Name", txtEmp_Name.Text) 'ชื่อ
 
 -         prm.Add("Emp_SName", txtEmp_SName.Text) 'นามสกุล
 
 -         prm.Add("Emp_Gender", cmbGender.Text) 'เพศ
 
 -         prm.Add("Emp_StartDate", dtpStartDate.Value) 'วันที่เริ่มงาน
 
  
-         MdlMain.Execute(sqlstr:=sql, prm:=prm, cmdType:=CommandType.Text)
 
 -         MessageBox.Show("บันทึกข้อมูลเรียบร้อยแล้ว", "บันทึกข้อมูล", MessageBoxButtons.OK, MessageBoxIcon.Information)
 
  
-     End Sub
 
  คัดลอกไปที่คลิปบอร์ด 
 
R (Read) 
- ' แสดงข้อมูลพนักงานใน DataGridView
 
 -     Private Sub Show_Empinfo()
 
  
-         Try
 
  
-             Using db As IDbConnection = New OleDbConnection(MdlMain.ConnStr) 'สร้างการเชื่อมต่อโดยใช้ Using
 
  
-                 db.Open() 'เปิดการเชิ่อมต่อฐานข้อมูล
 
  
-                 Dim sql = "SELECT * FROM tblEmployee" ' คำสั่ง SQL
 
 -                 dgvEmp.DataSource = db.Query(Of Employee)(sql).ToList() 'กำหนดข้อมูลที่ Query มาได้ให้กับ DataGridview
 
 -                 Set_DGV() 'จัด Layout DataGridView
 
 -                 dgvEmp.Refresh() 'ฟื้นฟู DataGridView
 
  
-             End Using
 
  
-         Catch ex As Exception
 
  
-             MessageBox.Show(ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error)
 
  
-         End Try
 
  
-     End Sub
 
  คัดลอกไปที่คลิปบอร์ด 
- ' แสดงข้อมูลใน Textbox
 
 -     Private Sub Emp_infoo(Emp_ID As String)
 
  
-         Dim sql = @"SELECT Emp_ID,Emp_Name,Emp_SName,Emp_Gender,Emp_StartDate
 
 -                    FROM tblEmployee
 
 -                    WHERE Emp_ID = {Emp_ID} "
 
  
-         MdlMain.Emp_info(Of Employee)(sql, AddressOf Empinfo)
 
  
-     End Sub
 
  
-     ' ข้อมูลพนักงาน
 
 -     Private Sub Empinfo(l As List(Of Employee))
 
  
-         Get_EmpID = l.Item(0).Emp_ID 'ไอดี
 
 -         txtEmp_Name.Text = l.Item(0).Emp_Name 'ชื่อ
 
 -         txtEmp_SName.Text = l.Item(0).Emp_SName 'นามสกุล
 
 -         cmbGender.Text = l.Item(0).Emp_Gender
 
 -         dtpStartDate.Value = MdlMain.SqlDate(l.Item(0).Emp_StartDate) 'วันที่เริ่มงาน
 
  
-     End Sub
 
  คัดลอกไปที่คลิปบอร์ด 
 
U (Update) 
 
- ' แก้ไขข้อมูลพนักงาน 
 
 -     Private Sub Edit_EmpDB()
 
  
-         Try
 
  
-             Using db As IDbConnection = New OleDbConnection(MdlMain.ConnStr) 'สร้างการเชื่อมต่อโดยใช้ Using
 
  
-                 db.Open() 'เปิดการเชิ่อมต่อฐานข้อมูล
 
  
-                 ' คำสั่ง SQL
 
 -                 Dim sql = @"UPDATE tblEmployee SET
 
 -                                 Emp_Name =@Emp_Name,
 
 -                                 Emp_SName =@Emp_SName,
 
 -                                 Emp_Gender =@Emp_Gender,
 
 -                                 Emp_StartDate =@Emp_StartDate
 
 -                            WHERE Emp_ID = {Get_EmpID} "
 
  
-                 Dim prm As New DynamicParameters 'กำหนดค่า พารามิเตอร์ ของ Dapper ORM
 
 -                 prm.Add("Emp_Name", txtEmp_Name.Text) 'ชื่อ
 
 -                 prm.Add("Emp_SName", txtEmp_SName.Text) 'นามสกุล
 
 -                 prm.Add("Emp_Gender", cmbGender.Text) 'เพศ
 
 -                 prm.Add("Emp_StartDate", dtpStartDate.Value) 'วันที่เริ่มงาน
 
  
-                 db.Execute(sql, prm, commandType:=CommandType.Text) 'คำสั่ง Execute ฐานข้อมูลโดยใช้ sql, มีค่าพารามิเตอร์ที่รับเข้ามาจาก prm ,กำหนดประเภทคำสั่งเป็น Text
 
  
-                 MessageBox.Show("บันทึกแก้ไขข้อมูลเรียบร้อยแล้ว", "แก้ไขข้อมูล", MessageBoxButtons.OK, MessageBoxIcon.Information)
 
  
-             End Using
 
  
-         Catch ex As Exception
 
  
-             MessageBox.Show(ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error)
 
  
-         End Try
 
  
-     End Sub
 
  คัดลอกไปที่คลิปบอร์ด 
 
D (Delete) 
 
- ' ลบข้อมูล
 
 -     Private Sub Delete_EmpDB()
 
  
-         Try
 
  
-             Using db As IDbConnection = New OleDbConnection(MdlMain.ConnStr) 'สร้างการเชื่อมต่อโดยใช้ Using
 
  
-                 db.Open() 'เปิดการเชิ่อมต่อฐานข้อมูล
 
  
-                 ' คำสั่ง SQL
 
 -                 Dim sql = @"DELETE FROM tblEmployee WHERE Emp_ID = {Get_EmpID} "
 
 -                 db.Execute(sql, commandType:=CommandType.Text) 'คำสั่ง Execute ฐานข้อมูลโดยใช้ sql, กำหนดประเภทคำสั่งเป็น Text
 
  
-             End Using
 
  
-         Catch ex As Exception
 
  
-             MessageBox.Show(ex.Message, "Error!", MessageBoxButtons.OK, MessageBoxIcon.Error)
 
  
-         End Try
 
  
-     End Sub
 
  คัดลอกไปที่คลิปบอร์ด 
 
สำหรับท่านที่สนใจสามารถดาวน์โหลดตัวอย่างโปรแกรมได้ที่นี่ 
 
 
 
ฺBest regards 
puklit 
 
 
 |   
ขออภัย! โพสต์นี้มีไฟล์แนบหรือรูปภาพที่ไม่ได้รับอนุญาตให้คุณเข้าถึง
คุณจำเป็นต้อง ลงชื่อเข้าใช้ เพื่อดาวน์โหลดหรือดูไฟล์แนบนี้ คุณยังไม่มีบัญชีใช่ไหม? ลงทะเบียน  
 
x
 
 
 
 
 |