Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > .NET Framework > Forum > รบกวนค่ะ ส่งข้อมูลจาก Grid1 ไปยัง Grid2 เพิ่มการเลือกข้อมูลจาก ComboBox (VB2008)



 

รบกวนค่ะ ส่งข้อมูลจาก Grid1 ไปยัง Grid2 เพิ่มการเลือกข้อมูลจาก ComboBox (VB2008)

 



Topic : 038405



โพสกระทู้ ( 46 )
บทความ ( 0 )



สถานะออฟไลน์




จริง ๆ ทำเสร็จหมดแล้ว (ต้องขอบคุณคุณ Tungman มาก ๆ ค่ะ) แต่อาจารย์ต้องการให้เพิ่มการเลือกข้อมูลตามลำดับความสัมพันธ์ เพื่อความรวดเร็วและสะดวกของผู้ใช้งาน จึงต้องต้องปรับเปลี่ยนการเลือกข้อมูล โดยเพิ่ม ComboBox เข้ามาค่ะ แต่กวางทำแล้วเกิดปัญหา

โดยเมื่อกวางเลือกข้อมูลจาก Grid1 ไปยัง Grid2 เรียบร้อยแล้ว และต้องการเลือกข้อมูลเพิ่ม และใช้ ComboBox ในการกรอกข้อมูลในตรงกับความต้องการเพื่อความรวดเร็ว ปรากฎว่า เมื่อเลือกค่าใน ComboBox แล้ว ข้อมูลที่เลือกไว้ใน Grid 2 ก็หายไปค่ะ

รบกวนพี่ ๆ ช่วยแนะนำหน่อยนะคะ จุดคับขันมาก ๆ ค่ะ เพราะว่า ต้องทำแบบเดียวกัน 5 Form

รูปที่ 1

เริ่มการเลือกข้อมูล

รูปที่ 2 นะคะ
ปัญหาที่เกิดขึ้น

Code ค่ะ
ส่วนของ DataTable

Code (VB.NET)
Function Get_ServiceData() As DataTable
        If (lb_TypePet.Text = "สุนัข") Then
            lb_TypePet.Text = "D"
        ElseIf (lb_TypePet.Text = "แมว") Then
            lb_TypePet.Text = "C"
        End If
        If (lb_Sex.Text = "เมีย") Then
            lb_Sex.Text = "F"
        ElseIf (lb_Sex.Text = "ผู้") Then
            lb_Sex.Text = "M"
        End If
        Dim da As SqlDataAdapter = New SqlDataAdapter 'ใช้ดึงข้อมูลจากฐานข้อมูลเก็บไว้ใน ds
        Dim st As String = "select ServID,ServName,ServPrice,StypeCode from services,service_price where  ServCode = ServID and ForType like '%" & lb_TypePet.Text & "%' and ForSex like '%" & lb_Sex.Text & "%'"
        Dim strcon As String = "Data Source=LT-DARKWANG\;Initial Catalog=DogandCat;Integrated Security=True"
        Dim myCon As New SqlConnection(strcon)
        Dim myCommand As New SqlCommand(st, myCon)
        myCommand.Connection = myCon
        myCon.Open()
        Dim dataTable As DataTable = New DataTable
        da.SelectCommand = New SqlCommand(st, myCon)
        da.Fill(dataTable)
        If (lb_TypePet.Text = "D") Then
            lb_TypePet.Text = "สุนัข"
        ElseIf (lb_TypePet.Text = "C") Then
            lb_TypePet.Text = "แมว"
        End If
        If (lb_Sex.Text = "F") Then
            lb_Sex.Text = "เมีย"
        ElseIf (lb_Sex.Text = "M") Then
            lb_Sex.Text = "ผู้"
        End If
        Return dataTable
    End Function ' คัดกรองข้อมูลการบริการให้ตรงกับลักษณะของสัตว์เลี้ยง


ส่วนของการ Binding

Code (VB.NET)
 Dim Grid_Service_Data As DataTable
    Dim Grid_Treated_Data As DataTable

 Private Sub Form_Treate_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        Choose_Vet()
        Choose_Type()
        Choose_System()
        Cb_System.Enabled = False


        lb_Date.Text = Date.Today

        Grid_Service_Data = New DataTable
        Grid_Treated_Data = New DataTable

        'Grid การบริการ
        Grid_Service_Data = Get_ServiceData() 'ข้อมูลใน Grid service มาจาก Function นี้ (กรองจากข้อมูลสัตว์เลี้ยง)
        DataGrid_Service.DataSource = Grid_Service_Data
        Set_GridSV()
        DataGrid_Service.ReadOnly = True
        DataGrid_Service.Enabled = False
        'Grid การรักษา
        Grid_Treated_Data = Grid_Service_Data.Clone()
        DataGrid_Treated.DataSource = Grid_Treated_Data
        Set_GridTreated()

    End Sub ' Form Load


การเลือกข้อมูล

Code (VB.NET)
 Private Sub DataGrid_Service_CellMouseDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellMouseEventArgs) Handles DataGrid_Service.CellMouseDoubleClick

        Grid_Treated_Data.ImportRow(Grid_Service_Data.Rows(e.RowIndex)) ' import ข้อมูลไปยัง datagird ของ Treated
        DataGrid_Treated.DataSource = Grid_Treated_Data
        Set_GridTreated()
        Grid_Service_Data.Rows(e.RowIndex).Delete() ' ลบ row ที่เลือกไป
        Grid_Service_Data.AcceptChanges()
        DataGrid_Service.DataSource = Grid_Service_Data 'bind ข้อมูล
        Set_GridSV()

        '-------------------------------------
        'คำนวณค่าบริการ()
        Dim total As Integer
        For i As Integer = 0 To DataGrid_Treated.Rows.Count - 1
            total = total + (CDbl(DataGrid_Treated.Rows(i).Cells(2).Value.ToString * 1))
        Next
        SerAmount.Text = total.ToString

    End Sub 'เลือกข้อมูลบริการ


ส่วนนี้เป็นส่วนเมื่อเราเลือกค่าใน ComboBox ค่ะ

Code (VB.NET)
Function Get_ServiceData_Type() As DataTable
        If (lb_TypePet.Text = "สุนัข") Then
            lb_TypePet.Text = "D"
        ElseIf (lb_TypePet.Text = "แมว") Then
            lb_TypePet.Text = "C"
        End If
        If (lb_Sex.Text = "เมีย") Then
            lb_Sex.Text = "F"
        ElseIf (lb_Sex.Text = "ผู้") Then
            lb_Sex.Text = "M"
        End If
        Dim da As SqlDataAdapter = New SqlDataAdapter 'ใช้ดึงข้อมูลจากฐานข้อมูลเก็บไว้ใน ds
        Dim st As String = "select ServID,ServName,ServPrice,StypeCode from services,service_price where  ServCode = ServID and StypeCode = '" & Cb_Type.SelectedValue.ToString & "'  and ForType like '%" & lb_TypePet.Text & "%' and ForSex like '%" & lb_Sex.Text & "%'"
        Dim strcon As String = "Data Source=LT-DARKWANG\;Initial Catalog=DogandCat;Integrated Security=True"
        Dim myCon As New SqlConnection(strcon)
        Dim myCommand As New SqlCommand(st, myCon)
        myCommand.Connection = myCon
        myCon.Open()
        Dim dataTable As DataTable = New DataTable
        da.SelectCommand = New SqlCommand(st, myCon)
        da.Fill(dataTable)
        If (lb_TypePet.Text = "D") Then
            lb_TypePet.Text = "สุนัข"
        ElseIf (lb_TypePet.Text = "C") Then
            lb_TypePet.Text = "แมว"
        End If
        If (lb_Sex.Text = "F") Then
            lb_Sex.Text = "เมีย"
        ElseIf (lb_Sex.Text = "M") Then
            lb_Sex.Text = "ผู้"
        End If
        Return dataTable
    End Function ' คัดกรองข้อมูลการบริการตามประเภท


รบกวนทุกท่านด้วยนะคะ ใกล้ Demo โปรเจคแล้ว..งานดันเข้า..เล่นเอาเครียดมาก ๆ เลยค่ะ



Tag : - - - -







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2010-02-05 19:46:26 By : Kwang196 View : 3358 Reply : 5
 

 

No. 1

Guest


Code (VB.NET) For ComboBox
Private Sub Cb_Type_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Cb_Type.SelectedIndexChanged
    'binding service grid data.
    Grid_Service_Data = Get_ServiceData()
    DataGrid_Service.DataSource = Grid_Service_Data
    Set_GridSV()

    'clear grid2 data.
    Grid_Treated_Data.Clear()
    DataGrid_Treated.DataSource = Grid_Treated_Data
    Set_GridTreated()

    'clear service charges
    SerAmount.Text = "0"
End Sub







Date : 2010-02-05 21:14:30 By : tungman
 


 

No. 2



โพสกระทู้ ( 46 )
บทความ ( 0 )



สถานะออฟไลน์


ขอบคุณมาก ๆ ค่ะ เดี๋ยวกวางลองดูนะคะ แล้วจะกลับมาแจ้งผลค่า ^^
Date : 2010-02-05 21:29:07 By : Kwang196
 

 

No. 3



โพสกระทู้ ( 46 )
บทความ ( 0 )



สถานะออฟไลน์


กวางลองนำ Code ไปแล้ว ทั้งใน event SelectedIndexChanged กับ SelectedValueChanged ก็ไม่ได้ แจ้ง error "Object reference not set to an instance of an object."

แต่พอลองกับ SelectionChangeCommitted ไม่ error ค่ะ แต่การทำงานเหมือนเดิม คือ เลือกข้อมูลไว้แล้ว พอจะเลือกเพิ่ม..แล้วเลือก ComboBox ก่อน ข้อมูลที่เลือกไว้แล้วหายไปทั้ง Grid2 เลยค่ะ แล้วก็ เมื่อเลือกค่าใน ComboBox ก็ไม่มีการกรอง ค่าตามประเภทด้วยค่ะ

รบกวนอีกครั้งนะคะ ตอนนี้ก็กำลังพยายามอยู่ค่ะ ทำแบบ Add Row ก็มีปัญหาอีกเรื่อง รบกวนด้วยจริง ๆ ค่า
Date : 2010-02-05 21:39:36 By : Kwang196
 


 

No. 4



โพสกระทู้ ( 3,144 )
บทความ ( 1 )

สมาชิกที่ใส่เสื้อไทยครีเอท

สถานะออฟไลน์


1

Code (VB.NET)
Imports System.Data
Imports System.Data.SqlClient
Imports System.Data.OleDb
Imports System.IO

Public Class Form1
    Dim DataGridView1Data As DataTable
    Dim DataGridView2Data As DataTable

    Private Sub Form1_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        DataGridView1Data = New DataTable()
        DataGridView2Data = New DataTable()

        DataGridView1Data = GetMonth()
        DataGridView1.DataSource = DataGridView1Data
        DataGridView1.AllowUserToAddRows = False
        DataGridView1.AllowUserToDeleteRows = False
        DataGridView1.AllowUserToOrderColumns = False
        DataGridView1.AllowUserToResizeColumns = False
        DataGridView1.AllowUserToResizeRows = False
        DataGridView1.ReadOnly = True

        DataGridView2Data = DataGridView1Data.Clone()
        DataGridView2.DataSource = DataGridView2Data
        DataGridView2.AllowUserToAddRows = False
        DataGridView2.AllowUserToDeleteRows = False
        DataGridView2.AllowUserToOrderColumns = False
        DataGridView2.AllowUserToResizeColumns = False
        DataGridView2.AllowUserToResizeRows = False
        DataGridView2.ReadOnly = True

        ComboBox1.DataSource = GetMonth()
        ComboBox1.DisplayMember = "MonthName"
    End Sub

    Private Function GetMonth() As DataTable
        Dim sqlConnectionString As String = "Data Source=TUNGMAN\SQLEXPRESS;Initial Catalog=SqlDatabase;Integrated Security=True"
        Dim SqlConnection As SqlConnection = New SqlConnection(sqlConnectionString)

        Dim sqlCommandString As String = "Select [MonthID], [MonthName] From [TableMonth]"
        Dim sqlCommand As SqlCommand = New SqlCommand(sqlCommandString, SqlConnection)

        Dim dataTable As DataTable = New DataTable()
        Dim sqlDataAdapter As SqlDataAdapter = New SqlDataAdapter(sqlCommand)
        sqlDataAdapter.Fill(dataTable)

        Return dataTable
    End Function

    Private Sub DataGridView1_CellDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView1.CellDoubleClick
        DataGridView2Data.ImportRow(DataGridView1Data.Rows(e.RowIndex))
        'DataGridView2Data.DefaultView.Sort = "MonthID"
        DataGridView2.DataSource = DataGridView2Data

        DataGridView1Data.Rows(e.RowIndex).Delete()
        DataGridView1Data.AcceptChanges()
        DataGridView1.DataSource = DataGridView1Data
    End Sub

    Private Sub DataGridView2_CellDoubleClick(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellEventArgs) Handles DataGridView2.CellDoubleClick
        DataGridView1Data.ImportRow(DataGridView2Data.Rows(e.RowIndex))
        'DataGridView1Data.DefaultView.Sort = "MonthID"
        DataGridView1.DataSource = DataGridView1Data

        DataGridView2Data.Rows(e.RowIndex).Delete()
        DataGridView2Data.AcceptChanges()
        DataGridView2.DataSource = DataGridView2Data
    End Sub

    Private Sub DataGridView1_CellFormatting(ByVal sender As Object, ByVal e As System.Windows.Forms.DataGridViewCellFormattingEventArgs) Handles DataGridView1.CellFormatting
        If e.ColumnIndex = Me.DataGridView1.Columns("MonthName").Index _
            AndAlso (e.Value IsNot Nothing) Then

            Me.DataGridView1.Rows(e.RowIndex).Cells(e.ColumnIndex).ToolTipText = e.Value.ToString()
        End If
    End Sub

    Private Sub ComboBox1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ComboBox1.SelectedIndexChanged
        'binding grid1 data.
        DataGridView1Data = GetMonth()
        DataGridView1.DataSource = DataGridView1Data

        'clear grid2 data.
        DataGridView2Data.Clear()
        DataGridView2.DataSource = DataGridView2Data
    End Sub
End Class

Date : 2010-02-05 21:52:16 By : tungman
 


 

No. 5



โพสกระทู้ ( 46 )
บทความ ( 0 )



สถานะออฟไลน์


หลังจากลองดัดแปลง ปรับ ตัด ก็ได้แล้วค่ะ

Code ดังนี้ค่ะ

Code (VB.NET)
    Private Sub Cb_Type_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles Cb_Type.SelectedIndexChanged
        Grid_Service_Data = Get_ServiceData_Type()
        DataGrid_Service.DataSource = Grid_Service_Data
        Set_GridSV()

        'clear grid2 data.
        ' Grid_Treated_Data.Clear()
        'DataGrid_Treated.DataSource = Grid_Treated_Data
        'Set_GridTreated()

        'clear service charges
        'SerAmount.Text = "0"

    End Sub


แต่ยังติดปัญหาอะคะ คือว่า ข้อมูลใน Grid1 และ 2 ซ้ำกัน ตามรูปเลยค่ะ รบกวนอีกครั้งนะคะ

ค่าซ้ำกัน

เพิ่มเติมนะคะ ค่าจะซ้ำ เมื่อกวางกลับมาเลือก ComboBox เดิมซ้ำอีกครั้ง หลังจากที่เลือกค่าไปยัง Grid 2 เรียบร้อยแล้วอ่ะคะ
Date : 2010-02-05 21:54:25 By : Kwang196
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : รบกวนค่ะ ส่งข้อมูลจาก Grid1 ไปยัง Grid2 เพิ่มการเลือกข้อมูลจาก ComboBox (VB2008)
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 05
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่