重用数据表或我是以错误的方式...:DataTable已经属于另一个DataSet
Posted
tags:
篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了重用数据表或我是以错误的方式...:DataTable已经属于另一个DataSet相关的知识,希望对你有一定的参考价值。
VB.NET:我总是使用bindingsource与数据集并使用fill命令,然后填充网格等 - 没问题,但我不得不使用编程编码的数据集,因为操作需要在幕后进行,因为它的性质我正在为我所雇用的公司工作。
所以,我的代码看起来像这样:在一个表单中,我已经在顶部声明(因为我需要从表单的其他部分访问它)
Dim Facility_Table As DataTable
然后在我的加载子中我调用一个子(我会把所有东西都缩小,以便尽可能短)
Private Sub CreateNewDataTable()
Try
Facility_Table.Clear()
Facility_Table.Columns.Add("Level1", GetType(String))
Facility_Table.Columns.Add("Level2", GetType(String))
End Sub
然后调用另一个子(refreshlist),它从SQL Server中获取一些数据并将其铲入新行的字段中。
'Facility_Table.Reset()
Facility_Table.Clear()
Facility_Table.NewRow()
Facility_Table.Rows.Add(.Rows(Z).Item("Level1").ToString,
.Rows(Z).Item("Level2").ToString)
然后我调用一个refreshsource子: - 现在这一点我做的正常,不同于将网格绑定到数据源而不是我的代码,我通过谷歌搜索在互联网上提取的东西与我的数据表一起使用。
Dim Dset As New DataSet()
' Dset.Tables.Remove(Facility_Table)
Dset = New DataSet()
Dset.Tables.Add(Facility_Table)
Dim bs As BindingSource
bs = New BindingSource()
bs.DataSource = Dset
bs.DataMember = Dset.Tables(0).TableName
DataGridView2.DataSource = Nothing
DataGridView2.DataSource = bs
DataGridView2.Refresh()
并且它第一次工作正常 - 然后如果我点击我的树视图去另一个“Level1”并调用refreshlist sub我得到异常:
“DataTable已经属于另一个DataSet。”
正如你所看到的,从注释行开始,我已经尝试在重新添加之前删除表,但没有运气。
我认为只是清理数据表,然后重新填充它并重新绑定它将是所有需要但我有一种感觉,我错过了某个地方的一步,我希望它只是一个班轮或最坏的只需几行代码。
任何帮助将非常感谢,谢谢你的时间!
发生此错误是因为DataTable'记住'它所属的数据集。将表添加到DataSet表属性时,将构建此关联。因此,如果您真的想要保持相同的DataTable并且想要将其添加到另一个DataSet,则首先需要从先前的DataSet中删除该表。
Dset = New DataSet()
Facility_Table.DataSet?.Tables.Remove(Facility_Table)
Dset.Tables.Add(Facility_Table)
在尝试了各种交换和重置之后,上帝知道了什么,我最后回头看看我如何将数据表绑定到数据网格,它像湿腌鱼一样打在脸上。
删除这批:
Dim Dset As New DataSet()
'Dset = New DataSet()
Dset.Tables.Add(Facility_Table)
Dim bs As BindingSource
bs = New BindingSource()
bs.DataSource = Dset
bs.DataMember = Dset.Tables(0).TableName
DataGridView2.DataSource = Nothing
DataGridView2.DataSource = bs
DataGridView2.Refresh()
并将其替换为:
DataGridView2.DataSource = Facility_Table
工作完成了。我现在上床睡觉,脸上的k hu
以上是关于重用数据表或我是以错误的方式...:DataTable已经属于另一个DataSet的主要内容,如果未能解决你的问题,请参考以下文章
c#中datagridview中datasource反复赋值没有变化?
navigationBar 和 MPMoviePlayerController 的极其奇怪的行为。 iOS中的错误或我的错误?