.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即可。我要去睡觉了:)。