簡體   English   中英

我如何從datagridview行單擊中檢索數據以將相應數據轉換為另一種形式

[英]How i can retrive the data from datagridview row click to corresponding data to another form

我試圖在gridview click事件上將數據從一種形式檢索到另一種形式。 我有一些小代碼是我從Google搜索中獲得的,但是卻給了我錯誤。 在這段代碼中,我試圖將其檢索到第二種形式的datagrid。 請檢查我的代碼。 我錯了。

Private Sub ReceiveGoods_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        For j As Integer = 0 To frmGoodsReceive.dgvPODetails.RowCount - 1
            If frmGoodsReceive.dgvPODetails.Rows(j).Cells(0).Value = True Then
                Dim count As Integer = 0
                For i As Integer = 0 To frmGoodsReceive.dgvPODetails.ColumnCount - 1
                    Me.dgvReceiveGoods.Rows(count).Cells(i).Value = frmGoodsReceive.dgvPODetails.Rows(j).Cells(i).Value
                Next
                count += count
            End If
        Next
    End Sub

我在跑步時遇到此錯誤。

Conversion from string "PO003" to type 'Boolean' is not valid.

請幫我

錯誤

我所擁有的代碼我猜完全是錯誤的代碼。 因為我想做的是,所以我有一個gridview,並且有一些數據,當我單擊datagrid上的行時,我想將相應的信息打開到第二個表格gridview。 這是正確的方法嗎?

嘗試添加...

Me.dgvReceiveGoods.Rows(count).Cells(i).Value = frmGoodsReceive.dgvPODetails.Rows(j).Cells(i).Value.ToString

哦,好吧,我刪除了if語句,將所有數據傳輸到表單中:

Private Sub ReceiveGoods_Load(ByVal發送者作為System.Object,ByVal e作為System.EventArgs)處理MyBase.Load

    For j As Integer = 0 To frmGoodsReceive.dgvPODetails.RowCount - 1
            Dim count As Integer = 0
            For i As Integer = 0 To frmGoodsReceive.dgvPODetails.ColumnCount - 1
                Me.dgvReceiveGoods.Rows(count).Cells(i).Value = frmGoodsReceive.dgvPODetails.Rows(j).Cells(i).Value
            Next
            count += count
       Next
End Sub

如果要獲取沒有NULL值或Nothing的所有數據,則替換if條件

Private Sub ReceiveGoods_Load(ByVal發送者作為System.Object,ByVal e作為System.EventArgs)處理MyBase.Load

    For j As Integer = 0 To frmGoodsReceive.dgvPODetails.RowCount - 1
        If frmGoodsReceive.dgvPODetails.Rows(j).Cells(0).Value.ToString <> "" Then
            Dim count As Integer = 0
            For i As Integer = 0 To frmGoodsReceive.dgvPODetails.ColumnCount - 1
                Me.dgvReceiveGoods.Rows(count).Cells(i).Value = frmGoodsReceive.dgvPODetails.Rows(j).Cells(i).Value
            Next
            count += count
        End If
    Next
End Sub

檢查兩個DataGridView是否都具有“同一列”,否則可能會發生錯誤。 如果您傳遞10個數據與其他datagridview上的20個數據,則第一個datagridview將不足以提供第二個datagridview所需的數據。

試着分析這個...

解決方案1:DataGridView1> DataGridview 2

使用此代碼

Private Sub ReceiveGoods_Load(ByVal發送者作為System.Object,ByVal e作為System.EventArgs)處理MyBase.Load

For j As Integer = 0 To frmGoodsReceive.dgvPODetails.RowCount - 1
        Dim count As Integer = 0
        For i As Integer = 0 To frmGoodsReceive.dgvPODetails.ColumnCount - 1
            Me.dgvReceiveGoods.Rows(count).Cells(i).Value = frmGoodsReceive.dgvPODetails.Rows(j).Cells(i).Value
        Next
        count += count
   Next

結束子

解決方案2:DataGridview1 <DataGridview2

使用此代碼

Private Sub ReceiveGoods_Load(ByVal發送者作為System.Object,ByVal e作為System.EventArgs)處理MyBase.Load

For j As Integer = 0 To Me.dgvReceiveGoods.RowCount -1
    If frmGoodsReceive.dgvPODetails.Rows(j).Cells(0).Value.ToString <> "" Then
        Dim count As Integer = 0
        For i As Integer = 0 To frmGoodsReceive.dgvPODetails.ColumnCount - 1
            Me.dgvReceiveGoods.Rows(count).Cells(i).Value = frmGoodsReceive.dgvPODetails.Rows(j).Cells(i).Value
        Next
        count += count
    End If
Next

結束子

解決方案3:DataGridView1 = DataGridView 2

您可以同時使用...

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM