![](/img/trans.png)
[英]Pass all rows from a DataGridView on one form to another vb.net
[英]Transferring one datagridview data to another datagridview in VB.NET
问题:将多个行和列从一个datagridview(未绑定数据)移动到另一datagridview,然后显示另一种绑定了数据的表单的第二datagridview行。
开发平台:VB.NET 2008
问题说明:
anotherForm.Show()
? 发行代码:
Dim dr = DirectCast(DataGridViewX1.Rows(e.RowIndex).DataBoundItem, System.Data.DataRowView).Row
frmEncodeDatabase.EncodingCompleteDataSet.Tables("EncodingComplete").ImportRow(dr)
EncodingCompleteDataSetTableAdapters.EncodingCompleteTableAdapter.Update(EncodingCompleteDataSet, "EncodingComplete")
问候,CodingSource
编辑:对于杰森·福克纳
码:
For Each Col As DataGridViewColumn In DataGridViewX1.Columns
frmEncodeDatabase.EncodingCompleteDataGridView.Columns.Add(DirectCast(Col.Clone, DataGridViewColumn))
Next
frmEncodeDatabase.EncodingCompleteDataGridView.Rows.Add(DataGridViewX1.Rows(0).Cells.Cast(Of DataGridViewCell).Select(Function(c) c.Value).ToArray)
您的代码(我稍作改动):
Dim table As DataTable = DirectCast(frmEncodeDatabase.EncodingCompleteDataGridView.DataSource, DataView).Table
' Add row 0 to the DataGridViewX1 grid to the table.
' This assumes the schema/column names are the same between the two.
Dim addRow As DataRow = table.NewRow
For Each Col As DataGridViewColumn In DataGridViewX1.Columns
addRow(Col.Clone) = frmEncodeDatabase.EncodingCompleteDataGridView.Rows(0).Cells(Col.Clone).Value
Next
' Add the copied row values to the table.
' Once we do this, it should appear in the EncodingCompleteDataGridView.
table.Rows.Add(addRow)
但是我在table As DataTable = DirectCast(frmEncodeDatabase.EncodingCompleteDataGridView.DataSource, DataView).Table
未处理InvalidCastException:无法将类型为“ System.Windows.Forms.BindingSource”的对象转换为类型为“ System.Data.DataView”。
'This is your new DataGridView
Dim grdNew As New DataGridView
'This adds the row to your newDataGridView
For Each item In Me.DataGridView1.Rows
grdNew.Rows.Add(item)
Next
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.