【发布时间】: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 等事件可以访问它。不过,可能有更好的方法来做到这一点......