|
แก้ไขครั้งสุดท้ายโดย 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
|