.net 如何循环datagridview 1,并以不同的形式和DB表将循环结果复制到datagridview 2

.net 如何循环datagridview 1,并以不同的形式和DB表将循环结果复制到datagridview 2,.net,mysql,vb.net,winforms,datagridview,.net,Mysql,Vb.net,Winforms,Datagridview,我需要帮助,我会尽可能详细地解释 比如说,在Form1中,我有一个Datagridview1(DGV1),它是DataBound到Table1的,列有TransactionNumber(Double)、FormName(varchar)、Description(varchar)、Posted(text) 在Form2中,我有另一个DGV2,它是DataBound到Table2,列为TransactionNumber(Double)、Formname(VarChar)、Description(Va

我需要帮助,我会尽可能详细地解释

比如说,在
Form1
中,我有一个
Datagridview1(DGV1)
,它是
DataBound
Table1
的,列有
TransactionNumber(Double)、FormName(varchar)、Description(varchar)、Posted(text)

Form2
中,我有另一个
DGV2
,它是
DataBound
Table2
,列为
TransactionNumber(Double)、Formname(VarChar)、Description(VarChar)、Quantity(Double)

Form1
中,我有
textboxs
DGV1
中的列添加数据,还有两个按钮
add和Post
。当我单击
Post
时,我想在
DGV1
中循环,找到具有给定
TransactionNumber
的所有数据,然后将这些数据复制到
Form2
中的
DGV2

我真的需要帮助。。任何提示或帮助都将不胜感激。请,谢谢

我仍然没有按钮柱的代码,因为我仍在试图找出如何做到这一点。。。我将尽快用代码更新这篇文章

附言。 还在学习

新问题,但仍与原始问题相关

我调整了你的代码,现在它添加了数据。

我也可以在mdi表单中使用它吗

Dim occurences As New Dictionary(Of String, Double)

For Each DGVR As DataGridViewRow In Datagridview1.Rows

    If (Not DGVR.IsNewRow) Then

        If (occurences.ContainsKey(DGVR.Cells(1).Value.ToString())) Then

            occurences(DGVR.Cells(1).Value.ToString()) = Double.Parse(occurences(DGVR.Cells(1).Value.ToString()).ToString()) + Double.Parse(DGVR.Cells(4).Value.ToString())

        Else

            occurences.Add(DGVR.Cells(1).Value.ToString(), Double.Parse(DGVR.Cells(4).Value.ToString()))
        End If

    End If

Next


For Each KVP As KeyValuePair(Of String, Double) In occurences


    DataGridView2.Rows.Add(New Object() {KVP.Key, KVP.Value})

Next

不要因此而怨恨我,因为这是我在这么短的时间内所能做的最好的事情:

基本上,它是一个带有MDI父窗体和两个子窗体的项目。我在每个表格上都有一个DGV,我将信息从一个表格转移到另一个表格。您将不得不进行必要的编辑,以说明您的设置,但这应该足以让您了解如何进行您所追求的

编辑:

可能的变化:

     Dim _Name As String = ""
     Dim _Last As String = ""

      For Each xRow In MasterForm.oTransferRows
            _Name = xRow.Cells("GVName").Value.ToString()
            _Last = xRow.Cells("GVLast").Value.ToString()
'是否应将下一行插入?

            Dim _sqlInsert As String = String.Format("Insert testing(Name, LastName) Values  (@iName, @iLast)")
            Using conn As New SqlClient.SqlConnection("Server = localhost; Username= root; Password =; Database = test")
                Using cmd
                    With cmd
                        MsgBox("Connection Established")
                        .Connection = conn
                        .Parameters.Clear()
                        'Create Insert Query
                        .CommandText = _sqlInsert

                        .Parameters.Add(New SqlParameter("@iName", _Name))
                        .Parameters.Add(New SqlParameter("@iLast", _Last))
                    End With
                    Try
                        conn.Open()
                        Me.Validate()
                        cmd.ExecuteNonQuery()
                    Catch ex As Exception
                        MsgBox(ex.Message.ToString())
                    End Try
                End Using
            End Using

        Next


您是否在使用MDI父/子表单?它在很大程度上决定了您将获得的解决方案的类型。@KreepN说实话,不,我只是对VB.Net非常陌生,我只使用它大约一个月左右。。到目前为止,我所做的一切都是我从网上读到的,自学的,还有这里人们的帮助。。。你能帮我吗?我变得非常绝望。。。谢谢。还有谁愿意帮忙吗??。。。我仍然没有找到这个问题的解决方案。……在
表1
(Form1)和
表2
(Form2)之间是否存在任何链接?@NeverHopeless link?。。你在问什么样的链接?你好,我知道你一定很忙,但我正在努力解决另一个问题。。。相同的场景,相同的名称必须传输到另一个DGV,但这次不是在两行中使用相同的名称,而是在一行中使用相同的名称,但假设在childform1中,相同名称的第一行的
数量
为10,相同名称的第二行的
数量
为20,在childform2中,我希望这些数据在一行中,但数量为30,而不是两行。(childform2中的description列不再需要)…(在下一条评论中继续)我知道我必须有一个
if-else
条件,而我有,我只是不知道如何使用
Update
查询循环数据。。。。我确实有代码,但甚至没有调试它,因为它不完整。。。我不知道要添加什么行。。。。我可以这样做的单行被转移,但多行被转移只是困惑我如何做数学。。。还有语法……我还有一个
Select
Query来获取childform2表中的所有
名称。@AlexLuthor您可以利用LINQ对对象本身进行一些查询。因此,假设有两行名称相同,那么可以查询行集合中的不同名称,然后将它们的数量加总到一个新的行集合中,包含您想要的所有内容。@AlexLuthor这是linq,但在这里使用可能太难了。检查我为你做的这个项目,因为它应该能让你明白这一点:。它在行中循环并为您求和。这可能不完全是你想要的,但你可以看到我想要表达的。如果要从数据库中获取所有数据,只需按名称本身将查询写入group即可。我要去睡觉了:)。