【问题标题】:How do I clear a dataset when the tables have existing relations?当表具有现有关系时,如何清除数据集?
【发布时间】:2014-06-25 03:31:47
【问题描述】:

当表存在关系时,如何清除数据集?我正在尝试在使用之间清除数据集。每次我加载一个新的 XML 文件时,数据集都会保留旧的表名,但我正在加载一个全新的 XML 文件,所以我需要将其清除。我正在尝试使用ssrsReportDataSet.Tables.Clear(),但我得到了

"无法删除具有现有关系的表。删除关系 首先。”

我很确定现有表之间存在外键约束。

之前我尝试过遍历数据集并从每个表中删除每一行,但我仍然无法删除表或清除数据集。

Private Sub btnLoadFile_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles btnLoadFile.Click

    Dim fd As OpenFileDialog = New OpenFileDialog()
    Dim strFileName As String

    fd.Title = "Open File Dialog"
    fd.InitialDirectory = "C:\"
    fd.Filter = "XML Files (*.xml)|*.xml|Excel Files (*.xls)|*.xlsx"
    fd.FilterIndex = 1
    fd.RestoreDirectory = True

    If fd.ShowDialog() = DialogResult.OK Then


        ' Clear data set
        ssrsReportDataSet.Tables.Clear()


        strFileName = fd.FileName
        lblFilePath.Text = strFileName

        'Load dataset from XML file
        ssrsReportDataSet.ReadXml(strFileName)

        ' Set dropdown values
        For n As Integer = 0 To ssrsReportDataSet.Tables.Count - 1

            tableSelecter.Items.Add(ssrsReportDataSet.Tables(n).TableName)
        Next

        ' Load datagrid
        DataGridViewXml.DataSource = ssrsReportDataSet
        DataGridViewXml.DataMember = ssrsReportDataSet.Tables(0).TableName

        tableSelecter.SelectedIndex = 0

    End If
End Sub

【问题讨论】:

  • 它具有模块级范围,因此下拉菜单上的 SelectedIndexChanged 等事件可以访问它。不过,可能有更好的方法来做到这一点......

标签: xml vb.net datatable


【解决方案1】:

如果您不再需要以前的 DataSet 但想使用相同的全局变量,那么只需重新初始化它

    ssrsReportDataSet = new DataSet();

而且,不需要 Dispose 数据集。

【讨论】:

  • 做到了,谢谢。当我错过这么简单的事情时,我讨厌它......我会尽快回答。
猜你喜欢
  • 2013-03-27
  • 1970-01-01
  • 2022-08-22
  • 1970-01-01
  • 1970-01-01
  • 2020-10-04
  • 1970-01-01
  • 2011-07-26
  • 1970-01-01
相关资源
最近更新 更多