【问题标题】:Copy a row to another DataGridView将一行复制到另一个 DataGridView
【发布时间】:2013-01-21 13:50:32
【问题描述】:

我在 Windows 窗体,VB.NET 中有两个 DataGridViews

当我双击DataGridView1FullSelectedRow 时,SelectedRow 应该被复制到DataGridView2,两个网格都是来自 SQL Server 2008 的DataBounded..

这是我在每个网格中检索数据的代码..

**DataGridView1**
Dim UserScheduleString As String = "SELECT * FROM Schedule"
Dim UserScheduleStringList As New SqlCommand(UserScheduleString, mdl_Connection.CONN)

UserScheduleStringList.CommandType = CommandType.Text
UserScheduleStringListAdpt.SelectCommand = UserScheduleStringList
UserScheduleStringListAdpt.SelectCommand.ExecuteNonQuery()
UserScheduleStringListAdpt.Fill(UserScheduleStringListDataSet, "Users")
DataGridView1.DataSource = UserScheduleStringListDataSet.Tables("Users")


**DataGridView2**
Dim SomeTableString As String = "SELECT * FROM someTable"
Dim SomeTableStringList As New SqlCommand(SomeTableString, mdl_Connection.CONN)

SomeTableStringList.CommandType = CommandType.Text
SomeTableStringListAdpt.SelectCommand = SomeTableStringList
SomeTableStringListAdpt.SelectCommand.ExecuteNonQuery()
SomeTableStringListAdpt.FillSomeTableStringListDataSet, "*<tablename>*")
DataGridView1.DataSource = SomeTableStringListDataSet.Tables("*<tablename>*")

我搜索了其他论坛,这就是我所拥有的......

newCustomersRow = UserScheduleStringListDataSet.Tables("Users").NewRow()
newCustomersRow("ID") = "0023"
newCustomersRow("Day") = "Tuesday"
newCustomersRow("Start Time") = "13:00:00"
newCustomersRow("End Time") = "18:00:00"

UserScheduleStringListDataSet.Tables("Users").Rows.Add(newCustomersRow)

UserScheduleStringListAdpt.Update(UserScheduleStringListDataSet, "Users")

当我尝试将其放入 DataGridView1_CellMouseDoubleClick 时,它给了我一个错误 Object reference not set to an instance of an object.

【问题讨论】:

  • 为什么你不接受答案也不要求进一步的帮助?

标签: vb.net datagridview datatable dataset rows


【解决方案1】:

尝试以下方法:

Private Sub DataGridView1_CellMouseDoubleClick(ByVal sender As Object, ByVal e As DataGridViewCellEventArgs) 

   Dim dr = DirectCast(DataGridView1.Rows(e.RowIndex).DataBoundItem, System.Data.DataRowView).Row

   UserScheduleStringListDataSet.Tables("Users").ImportRow(dr)

   UserScheduleStringListAdpt.Update(UserScheduleStringListDataSet, "Users")

End Sub

【讨论】:

  • ImportRow 不是 DataRowCollection 的成员
  • 已更正。它在数据表上,而不是在行集合上。
  • 另外,我不能 100% 确定 DataBoundItem 是绑定的 DataRow (因此,可以转换为该类型)。不过你可以试试,应该没问题的。
  • 无法将“System.Data.DataRowView”类型的对象转换为“System.Data.DataRow”类型。
猜你喜欢
  • 2011-09-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多