使用表格1中的datagridview单元格值过滤表格2中的datagridview 2

时间:2020-03-20 04:19:49

标签: vb.net sql-server-2019

我有两种形式不同的2个不同的datagridview(1。客户列表2.该客户的付款历史记录)。当我从表单1单击客户端时,我想使用他的clientID过滤Form2上的datagridview问题是当我使用WHERE作为查询时,如果我删除了WHERE,则该表不显示该表付款表中的付款项将显示。

Client List 这是单击表单1中的行时的代码

ElseIf colName = "colViewPayment" Then

        Dim row As DataGridViewRow = datagridviewClient.Rows(e.RowIndex)
        Dim fname As String
        Dim lname As String
        Using cmd As SqlCommand = New SqlCommand("SELECT * FROM tbtClients WHERE ClientID = @ClientID")
            cmd.CommandType = CommandType.Text
            cmd.Parameters.AddWithValue("@ClientID", row.Cells("ClientID").Value)
            cmd.Connection = con
            con.Open()
            Using sdr As SqlDataReader = cmd.ExecuteReader()
                sdr.Read()
                fname = sdr("ClientFirstName")
                lname = sdr("ClientLastName")
                frmLoanerPaymentHistoryBunifu.NameR.Text = fname + " " + lname
                frmLoanerPaymentHistoryBunifu.CpNo.Text = sdr("ClientMobileNumber").ToString()
                frmLoanerPaymentHistoryBunifu.ClientID.Text = sdr("ClientID").ToString()

            End Using
            con.Close()
            frmLoanerPaymentHistoryBunifu.ShowDialog()


        End Using

enter image description here 这是用于在“付款历史记录表格”(form2)中填充数据网格的代码

Private Sub BindGrid()

    Dim CID As String = ClientID.Text
    Dim x As Integer = Convert.ToInt64(CID)

    Using cmd As New SqlCommand("SELECT * FROM PaymentTable WHERE ClientID = '" + ClientID.Text + "'", con)
        cmd.CommandType = CommandType.Text
        Using sda As New SqlDataAdapter(cmd)
            Using dt As New DataTable()
                sda.Fill(dt)

                pDataGrid.AutoGenerateColumns = False

                'Add Columns
                pDataGrid.Columns(0).Name = "PID"
                pDataGrid.Columns(0).DataPropertyName = "PaymentID"

                pDataGrid.Columns(1).Name = "CID"
                pDataGrid.Columns(1).DataPropertyName = "ClientID"

                pDataGrid.Columns(2).Name = "Pdate"
                pDataGrid.Columns(2).DataPropertyName = "PDate"

                pDataGrid.Columns(3).Name = "Pamt"
                pDataGrid.Columns(3).DataPropertyName = "PAmt"

                pDataGrid.Columns(4).Name = "Pren"
                pDataGrid.Columns(4).DataPropertyName = "ReloanDate"

                pDataGrid.Columns(5).Name = "Pcol"
                pDataGrid.Columns(5).DataPropertyName = "PColl"

                pDataGrid.DataSource = dt
            End Using
        End Using
    End Using
End Sub

0 个答案:

没有答案