简体   繁体   English

在VB.NET中将一个datagridview数据传输到另一个datagridview

[英]Transferring one datagridview data to another datagridview in VB.NET

Issue: Moving multiple rows and columns from one datagridview(non-data bound) to another datagridview and then displaying the second datagridview rows from another form which is data bound. 问题:将多个行和列从一个datagridview(未绑定数据)移动到另一datagridview,然后显示另一种绑定了数据的表单的第二datagridview行。

Developing platform : VB.NET 2008 开发平台:VB.NET 2008

Issue description: 问题说明:

  • I have some rows and columns in another form's datagridview which is now populated from a local database that is now connected in my application. 我在另一个表单的datagridview中有一些行和列,该表单现在是从现在连接到我的应用程序中的本地数据库填充的。
  • Having an error in EncodingCompleteDataSet inside the Update argument, which says 'Error 1 'EncodingCompleteDataSet' is a type and cannot be used as an expression.' 在Update参数内的EncodingCompleteDataSet中发生错误,提示“错误1'EncodingCompleteDataSet”是一种类型,不能用作表达式。
  • Where would I insert anotherForm.Show() in the following code? 在以下代码中,我将在哪里插入anotherForm.Show()

Issue Code: 发行代码:

Dim dr = DirectCast(DataGridViewX1.Rows(e.RowIndex).DataBoundItem, System.Data.DataRowView).Row
frmEncodeDatabase.EncodingCompleteDataSet.Tables("EncodingComplete").ImportRow(dr)
EncodingCompleteDataSetTableAdapters.EncodingCompleteTableAdapter.Update(EncodingCompleteDataSet, "EncodingComplete")

Regards, CodingSource 问候,CodingSource

EDIT: For Jason Faulkner 编辑:对于杰森·福克纳

Code: 码:

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)

Your code (which I altered a little): 您的代码(我稍作改动):

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)

But I'm having an error in table As DataTable = DirectCast(frmEncodeDatabase.EncodingCompleteDataGridView.DataSource, DataView).Table which says 但是我在table As DataTable = DirectCast(frmEncodeDatabase.EncodingCompleteDataGridView.DataSource, DataView).Table

InvalidCastException was unhandled: Unable to cast object of type 'System.Windows.Forms.BindingSource' to type 'System.Data.DataView'. 未处理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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM