【发布时间】:2014-12-23 12:16:20
【问题描述】:
问题:将多个行和列从一个 datagridview(非数据绑定)移动到另一个 datagridview,然后从另一个数据绑定的表单显示第二个 datagridview 行。
开发平台:VB.NET 2008
问题描述:
- 我在另一个表单的 datagridview 中有一些行和列,这些行和列现在是从本地数据库中填充的,该数据库现在已连接到我的应用程序中。
- Update 参数内的 EncodingCompleteDataSet 出现错误,提示“错误 1 'EncodingCompleteDataSet' 是一种类型,不能用作表达式。”
- 在下面的代码中我应该在哪里插入
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")
问候, 编码源
编辑:杰森·福克纳
代码:
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'。
【问题讨论】:
-
您在发布答案后彻底修改了您的问题。
-
先生,我已经复制了您的代码(使用提取源数据等 cmets)并将其粘贴到我的代码上。我在“Dim table As DataTable = DirectCast(frmEncodeDatabase.EncodingCompleteDataGridView.DataSource, DataView).Table”上有一个错误,上面写着“InvalidCastException 未处理:无法将'System.Windows.Forms.BindingSource'类型的对象转换为'System .Data.DataView'。"
-
我的代码如下:'拉取源数据。 Dim table As DataTable = DirectCast(frmEncodeDatabase.EncodingCompleteDataGridView.DataSource, DataView).Table ' 将 DataGridViewX1 网格的第 0 行添加到表中。 ' 这假定两者之间的模式/列名称相同。 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 table.Rows.Add(addRow)
-
如上所述,在我的答案发布后,您彻底改变了您的问题。编辑后,我的回答与您发布的内容完全无关。关于错误,您需要发布更多关于如何它是数据绑定的详细信息。我根据您的原始问题做了一个假设。
-
@Jason Faulkner 为您编辑了帖子...
标签: .net vb.net datagridview