แนวคิดในการเขียนโปรแกรม สำหรับหลักการคิดก็คือ จากหน้าโปรแกรมของเราที่มี DatagridView แสดงข้อมูลอยู่นั้นเราจะเลือกข้อมูลที่จะทำการแก้ไขโดยการคลิกที่ข้อมูล แล้วให้ข้อมูลที่เราเลือกไปแสดงอยู่ในช่องรายละเอียดด้านบน จากนั้นก็ทำการเปลี่ยนข้อมูลตามความต้องการแล้วก็กดปุ่มบันทึก โดยที่ปุ่มบันทึกนั้นเป็นปุ่มเดียวกับการเพิ่มใหม่ หลายคนคงสงสัยว่าอ้าวแล้วมันจะทำงานยังไงเพราะมันเป็นปุ่มเดียวกัน ผมเขียนแบบง่ายๆตรงไปตรงมาเลยก็คือ ให้มันค้นว่าในฐานข้อมูลนั้นมีรหัสนี้หรือยัง ถ้ายังให้เพิ่มใหม่ แต่ถ้ามีแล้วให้แก้ไขครับ
เริ่มเขียนโค้ดดังนี้ เริ่มแรกให้ดับเบิ้ลคลิกที่ Datagridview ครับ มันจะแสดงออกมาดังรูป
แต่เราไม่ใช้ CellcontentClick ครับ เราจะใช้ CellClick
หลังจากนั้นเราก็ทำการเขียนโค้ดเพื่อให้เวลาเราคลิกเลือกข้อมูลที่ Datagridview แล้วข้อมูลไปแสดงรายละเอียดด้านบน
ขั้นแรกประกาศตัวแปร i ขึ้นมาก่อนครับเพื่อให้ i เป็นตัวบอกว่าชี้ที่ index ที่เท่าไหร่ของ Datagridview
Dim i As Integer
i = DataGridView1.CurrentRow.Index
จากนั้นก็เขียนเพื่อให้นำค่าจาก Datagridview มาแสดงในคอนโทรลรายละเอียดด้านบนครับ
TextBox1.Text = DataGridView1.Item(0, i).Value
TextBox2.Text = DataGridView1.Item(1, i).Value
ComboBox1.Text = DataGridView1.Item(2, i).Value
โค้ดจริงก็จะได้แบบนี้ครับ
หลังจากนั้นก็ทดสอบโปรแกรม ทำการรันโปรแกรมแล้วก็คลิกเลือกข้อมูลใน Datagridview โปรแกรมก็จะนำข้อมูลไปแสดงครับพร้อมทำการแก้ไข
เมื่อเราสามารถเลือกข้อมูลได้แล้วขั้นต่อไปเราก็สามารถทำการเขียนเพื่อให้แก้ไขได้คับ โดยดับเบิ้ลคลิกที่ปุ่ม บันทึกครับ แล้วเขียนโค้ดเพิ่มครับ
Dim ds As New DataTable
Dim dtAdapter As OleDb.OleDbDataAdapter
sqlQuery = "SELECT * FROM Tb_student WHERE st_code='" & TextBox1.Text & "'"
dtAdapter = New OleDb.OleDbDataAdapter(sqlQuery, con)
dtAdapter.Fill(ds)
If ds.Rows.Count = 0 Then
' หากไม่มีข้อมูลรหัสนี้อยู่ก่อนให้ทำการเพิ่มโดยการเขียนโค้ดตรงนี้
else
' หากมีข้อมูลอยู่แล้วให้เขียนโค้ดการแก้ไขตรงนี้
end if
หากเขียนเต็มๆจะได้ดังนี้ครับ
ในกรอบสีแดงคือโค้ดที่มีการเขียนเพิ่มในปุ่มบันทึกนะครับ หลังจากนั้นลองทดสอบโปรแกรมครับ
เป็นอันสำเร็จครับ โปรแกรมเราสามารถเลือกข้อมูลแล้วสามารถทำการแก้ไขได้
ได้อะไรบ้างจากบทความนี้ บทสรุปเลยนะครับ เราได้โปรแกรมที่สามารถ เพิ่มและแก้ไขข้อมูลได้ในปุ่มบันทึกอันเดียวกัน โดยการค้นหาจากรหัสข้อมูล ถ้ามีอยู่แล้วให้ทำการแก้ไข แต่ถ้าไม่มีก็เพิ่มเข้าไปใหม่ การเลือกข้อมูลก็ทำได้โดยการเลือกจาก Datagridview แถมอีกนิดครับ ให้ทำการเพิ่มโค้ดนี้เข้าไปตอนบันทึกครับ SetGrid() คือการเรียกฟังก์ชั่นที่เราเขียนเพื่อเรียกข้อมูลมาแสดงใน Datagridview เขียนต่อท้ายในปุ่ม บันทึก ครับแบบนี้
ลองดูครับ มันจะทำงานตอนเราเพิ่มใหม่หรือบันทึกการแก้ไขครับ เพื่อให้โปรแกรมดูน่าสนใจขึ้น เป็นการโต้ตอบหรือเปลี่ยนแปลงตอนใช้โปรแกรมครับ
ในตอนต่อไปเราจะมาปรับแต่ Datagirdview กันครับ แล้วพบกันตอนต่อไปครับ
มันไม่ได้
ตอบลบมันทำไม่ไดอ้ะค่ะ
ลบ.
ตอบลบ