ผมต้องการดึงข้อมูลในตารางฐานข้อมูล มาแสดงใน Listview ครับ
โดยใช้ Combobox เป็นตัวกำหนดว่าข้อมูลที่จะดึงมามีไรบ้าง
จากรูปฐานข้อมูลครับ
หากเลือก Combobox เลือก มกราคม 2561 ก็ให้ดึงข้อมูล มกราคม 2561 ทั้งหมดที่มีอยู่มาแสดงครับ
โค้ดด้านล่าง ที่ผมทำ มันดึงมาได้เฉพาะแถวแรกของข้อมูลที่เราต้องการครับ
sql = "select * from Tbl_Meter_Values where prajum_month_year = '" & combo_month_and_year.Text & "'"
Dim check2 As String = cmd_excuteScalar()
If check2 = Nothing Then
MessageBox.Show("ยังไม่มีข้อมูลค่าเช่าห้องในเดือนนี้", "ข้อมูลเดือน " & combo_month_and_year.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning)
Else
sql = "select * from Tbl_Meter_Values where prajum_month_year = '" & combo_month_and_year.Text & "'"
Dim dts As DataTable = cmd_excuteDataTable()
Dim arr(16) As String
arr(0) = listview_detail_room.Items.Count + 1
arr(1) = dts.Rows(0)("room_name")
sql = "select cust_nickname, cust_name from Tbl_Customer where room_name = '" & arr(1) & "'"
Dim dts2 As DataTable = cmd_excuteDataTable()
arr(2) = dts2.Rows(0)("cust_nickname")
arr(3) = dts2.Rows(0)("cust_name")
arr(4) = txt_price.Text
arr(5) = dts.Rows(0)("meter_water_old")
arr(6) = dts.Rows(0)("meter_water_new")
arr(7) = arr(6) - arr(5)
arr(8) = arr(7) * Val(txt_water.Text)
arr(9) = dts.Rows(0)("meter_electric_old")
arr(10) = dts.Rows(0)("meter_electric_new")
arr(11) = arr(10) - arr(9)
arr(12) = arr(11) * Val(txt_electric.Text)
arr(13) = Val(txt_net.Text)
arr(14) = arr(4) + +arr(8) + +arr(12) + +arr(13)
sql = "select room_status from Tbl_Rooms where room_name = '" & arr(1) & "'"
Dim dts3 As DataTable = cmd_excuteDataTable()
arr(15) = dts3.Rows(0)("room_status") '
Dim itm As New ListViewItem(arr)
listview_detail_room.Items.Add(itm)
End If
เช่น หากเลือก กุมภาพันธ์ 2561 มันก็จะแสดงแค่แถวแรกที่เจอ กุมภาพันธ์ 2561 ผมต้องการทั้งหมดของ กุมภาพันธ์ 2561 ต้องทำยังไงครับ
***เพิ่มเติมครับ ตอนนี้ถ้าเรียกจากตารางเดียว มาแสดงได้แล้วครับ แต่ใน Listview นี้ ผมต้องใช้ข้อมูลจาก 3 ตารางด้วยกัน ไม่ทราบว่าต้องทำไงครับ
สอบถามเรื่องการดึงข้อมูลมาแสดงใน Listview ครับ
โดยใช้ Combobox เป็นตัวกำหนดว่าข้อมูลที่จะดึงมามีไรบ้าง
จากรูปฐานข้อมูลครับ
หากเลือก Combobox เลือก มกราคม 2561 ก็ให้ดึงข้อมูล มกราคม 2561 ทั้งหมดที่มีอยู่มาแสดงครับ
โค้ดด้านล่าง ที่ผมทำ มันดึงมาได้เฉพาะแถวแรกของข้อมูลที่เราต้องการครับ
Dim check2 As String = cmd_excuteScalar()
If check2 = Nothing Then
MessageBox.Show("ยังไม่มีข้อมูลค่าเช่าห้องในเดือนนี้", "ข้อมูลเดือน " & combo_month_and_year.Text, MessageBoxButtons.OK, MessageBoxIcon.Warning)
Else
sql = "select * from Tbl_Meter_Values where prajum_month_year = '" & combo_month_and_year.Text & "'"
Dim dts As DataTable = cmd_excuteDataTable()
Dim arr(16) As String
arr(0) = listview_detail_room.Items.Count + 1
arr(1) = dts.Rows(0)("room_name")
sql = "select cust_nickname, cust_name from Tbl_Customer where room_name = '" & arr(1) & "'"
Dim dts2 As DataTable = cmd_excuteDataTable()
arr(2) = dts2.Rows(0)("cust_nickname")
arr(3) = dts2.Rows(0)("cust_name")
arr(4) = txt_price.Text
arr(5) = dts.Rows(0)("meter_water_old")
arr(6) = dts.Rows(0)("meter_water_new")
arr(7) = arr(6) - arr(5)
arr(8) = arr(7) * Val(txt_water.Text)
arr(9) = dts.Rows(0)("meter_electric_old")
arr(10) = dts.Rows(0)("meter_electric_new")
arr(11) = arr(10) - arr(9)
arr(12) = arr(11) * Val(txt_electric.Text)
arr(13) = Val(txt_net.Text)
arr(14) = arr(4) + +arr(8) + +arr(12) + +arr(13)
sql = "select room_status from Tbl_Rooms where room_name = '" & arr(1) & "'"
Dim dts3 As DataTable = cmd_excuteDataTable()
arr(15) = dts3.Rows(0)("room_status") '
Dim itm As New ListViewItem(arr)
listview_detail_room.Items.Add(itm)
End If
เช่น หากเลือก กุมภาพันธ์ 2561 มันก็จะแสดงแค่แถวแรกที่เจอ กุมภาพันธ์ 2561 ผมต้องการทั้งหมดของ กุมภาพันธ์ 2561 ต้องทำยังไงครับ
***เพิ่มเติมครับ ตอนนี้ถ้าเรียกจากตารางเดียว มาแสดงได้แล้วครับ แต่ใน Listview นี้ ผมต้องใช้ข้อมูลจาก 3 ตารางด้วยกัน ไม่ทราบว่าต้องทำไงครับ