以文本方式查看主题

-  Foxtable(狐表)  (http://foxtable.net/bbs/index.asp)
--  专家坐堂  (http://foxtable.net/bbs/list.asp?boardid=2)
----  学着走  (http://foxtable.net/bbs/dispbbs.asp?boardid=2&id=99762)

--  作者:3232121table
--  发布时间:2017/4/26 13:35:00
--  学着走
   老师下面的代码是删除一个(name)表和Tree表中的符合条件行,总报警:不存在名称为“已售件”的datatable 。 不要黑体的代码时,比较正常,但表还在那,重打开项目后该表才消失。请问错在那

    Dim name As String = trv.SelectedNode.Text   
    Dim Result As DialogResult
    Result = MessageBox.Show("删除后数据不可恢复!","提示", MessageBoxButtons.YesNo, MessageBoxIcon.question)
    If Result = DialogResult.Yes Then
        If DataTables.Contains(name) Then
            Dim Builder As New ADOXBuilder
            Builder.Open()
            With Builder
                .DeleteTable(name)
            End With
            Builder.Close()
            
            Dim nd As WinForm.TreeNode = trv.SelectedNode
            nd.Delete()
            Dim lit As List(of DataRow) = DataTables("tree").Select("货物 = \'" & name & "\'" )
            If lit IsNot Nothing Then
                For Each li As DataRow In lit
                    li.Delete()
                Next
            End If
            DataTables.Unload(name)
        End If
    Else
        MessageBox.Show("你取消了这项操作.","提示")
    End If
[此贴子已经被作者于2017/4/26 13:35:58编辑过]

--  作者:有点色
--  发布时间:2017/4/26 14:21:00
--  

我用这段代码测试,没有问题

 

你具体的问题,做个实例上来看看。

 

Dim name As String = CurrentTable.Name
Dim Result As DialogResult
Result = MessageBox.Show("删除后数据不可恢复!","提示", MessageBoxButtons.YesNo, MessageBoxIcon.question)
If Result = DialogResult.Yes Then
    If DataTables.Contains(name) Then
        Dim Builder As New ADOXBuilder
        Builder.Open()
        With Builder
            .DeleteTable(name)
        End With
        Builder.Close()
        DataTables.Unload(name)
    End If
Else
    MessageBox.Show("你取消了这项操作.","提示")
End If


--  作者:3232121table
--  发布时间:2017/4/26 16:50:00
--  
 下载信息  [文件大小:   下载次数: ]
图片点击可在新窗口打开查看点击浏览该文件:管理项目test.rar


--  作者:有点色
--  发布时间:2017/4/26 17:05:00
--  

你窗口引用了表,删除后自然会报错,加上红色代码

 

Tables("商品信息_Table1").DataSource = DataTables("主窗口")

DataTables.Unload(name)