วันอาทิตย์ที่ 4 มิถุนายน พ.ศ. 2560

การเขียนโปรแกรม vb2010 ติดต่อฐานข้อมูล ตอนที่ 5 การแก้ไขข้อมูล

คุยกันก่อน เมื่อครั้งก่อนผมเขียนเกี่ยวกับการแสดงข้อมูลจากฐานข้อมูลของเราด้วยคอนโทรลที่ชื่อ Datagridview กันมาแล้ว คราวนี้เราจะลองทำการเขียนเกี่ยวกับการแก้ไขข้อมูล โดยอาศัยข้อมูลที่แสดงอยู่ใน Datagridview นี่แหละครับ

แนวคิดในการเขียนโปรแกรม   สำหรับหลักการคิดก็คือ จากหน้าโปรแกรมของเราที่มี DatagridView แสดงข้อมูลอยู่นั้นเราจะเลือกข้อมูลที่จะทำการแก้ไขโดยการคลิกที่ข้อมูล แล้วให้ข้อมูลที่เราเลือกไปแสดงอยู่ในช่องรายละเอียดด้านบน จากนั้นก็ทำการเปลี่ยนข้อมูลตามความต้องการแล้วก็กดปุ่มบันทึก โดยที่ปุ่มบันทึกนั้นเป็นปุ่มเดียวกับการเพิ่มใหม่ หลายคนคงสงสัยว่าอ้าวแล้วมันจะทำงานยังไงเพราะมันเป็นปุ่มเดียวกัน ผมเขียนแบบง่ายๆตรงไปตรงมาเลยก็คือ ให้มันค้นว่าในฐานข้อมูลนั้นมีรหัสนี้หรือยัง ถ้ายังให้เพิ่มใหม่ แต่ถ้ามีแล้วให้แก้ไขครับ

เริ่มเขียนโค้ดดังนี้ เริ่มแรกให้ดับเบิ้ลคลิกที่ Datagridview ครับ มันจะแสดงออกมาดังรูป

แต่เราไม่ใช้ CellcontentClick ครับ เราจะใช้ CellClick 


หลังจากเลือกเราจะได้ 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 กันครับ แล้วพบกันตอนต่อไปครับ 

3 ความคิดเห็น:

โปรแกรมตั้งเวลา เข้าแถว เปิดเสียงหมดเวลา หมดคาบเรียน หรือชั่วโมงเรียน

สวัสดีครับในรอบ 2 ปี ผมหายไปตั้งแต่ปี 2560 ไม่ได้มาเขียน Blog เลย วันนี้กลับมา พร้อมกับโปรแกรมตัวนึงที่เขียนขึ้นเพื่อใช้งาน เล่านิดนึงครับ ผ...